通过webpack引入第三方库的方法


Posted in Javascript onJuly 20, 2018

一般来说,引入第三方库有一下三种情况:

  1. 通过CDN引入;
  2. 通过npm 安装并引入;
  3. 第三方js文件就在本地

通过CDN

这是最简单的一种方式,例如引入高德地图,可以直接把以下代码放在index.html文件底部,这种情况与webpack无关,因为webpack的入口文件并不在此处

<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.8&key=您申请的key值"></script>

npm

通过npm install安装的包会放在node modules文件夹下,当使用时,可以直接在用到的文件顶部引入进来,例如import或者require。但如果每个模块化的文件都会用到,那么每个文件都要去引入这个第三方文件,很繁琐,这时候就可以用webpack的插件:ProvidePlugin,可以理解这个插件的作用就是把第三方库引入,且它的作用域是全局的。

例如引入jquery

new webpack.ProvidePlugin({
 $: 'jquery',
 jQuery: 'jquery'
})

那么就可以用$和jQuery了,它们两个都表示jquery,需注意的是$和jQuery后面的值(jquery)必须和npm install jquery中的jquery保持一致,不然会找不到。

本地JS库文件

会有这么一种情况:第三方的js文件就在本地,怎么通过webpack引入呢?比如第二种jquery的情况,

new webpack.ProvidePlugin({
 $: 'jquery',
 jQuery: 'jquery'
})

这样写肯定会找不到jquery了,因为它并不在node modules中,这时可以用webpack配置中的resolve选项,给jquery指定一个别名,并配置其路径。

假如我们的jquery.js文件放在dist文件夹下面

resolve:{
  alias: {
   $: path.resolve(__dirname, './dist/jquery.js'),
   jQuery: path.resolve(__dirname, './dist/jquery.js'),
  }
}

这样就可以了。

通过loader

除了ProvidePlugin这个插件,还有一个imports-loader可以完成引入第三方库的工作。

test来指定哪个文件需要引入第三方库,通过options配置jquery。然后打包后可以看出,打包后的app.js文件变大了。

module: {
    rules: [
      {
        test: path.resolve(__dirname, "./src/app.js"),
        use: "imports-loader"
        options:{
          $:'jquery'
        }
      }
    ]
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 日期转换成中文格式的函数
Jul 07 Javascript
调用js时ie6和ie7,ff的区别
Aug 19 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
May 07 Javascript
sogou地图API用法实例教程
Sep 11 Javascript
JavaScript中exec函数用法实例分析
Jun 08 Javascript
JavaScript中的cacheStorage使用详解
Jul 29 Javascript
jQuery实现带滑动条的菜单效果代码
Aug 26 Javascript
jquery实现下拉框左右选择功能
Feb 21 Javascript
Javascript面试经典套路reduce函数查重
Mar 23 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
Jul 20 Javascript
JS实现字体背景跑马灯
Jan 06 Javascript
JS变量提升原理与用法实例浅析
May 22 Javascript
详解Koa中更方便简单发送响应的方式
Jul 20 #Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
Jul 20 #Javascript
小程序视频列表中视频的播放与停止的示例代码
Jul 20 #Javascript
微信小程序实现topBar底部选择栏效果
Jul 20 #Javascript
JS+H5 Canvas实现时钟效果
Jul 20 #Javascript
详解处理bootstrap4不支持远程静态框问题
Jul 20 #Javascript
基于Vue+element-ui 的Table二次封装的实现
Jul 20 #Javascript
You might like
数字转英文
2006/12/06 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
jscript读写二进制文件的方法
2015/04/22 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
详解vue组件之间的通信
2020/08/30 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
详解python中的文件与目录操作
2017/07/11 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
Pycharm+Scrapy安装并且初始化项目的方法
2019/01/15 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
超简单使用Python换脸实例
2019/03/27 Python
python 基于TCP协议的套接字编程详解
2019/06/29 Python
python向图片里添加文字
2019/11/26 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
Eclipse面试题
2014/03/22 面试题
见习期自我鉴定
2013/11/07 职场文书
安卓程序员求职信
2014/02/28 职场文书
英文自荐信常用句子
2014/03/26 职场文书
农村优秀教师事迹材料
2014/08/27 职场文书
国博复兴之路观后感
2015/06/02 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python