通过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 相关文章推荐
(jQuery,mootools,dojo)使用适合自己的编程别名命名
Sep 14 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
Apr 23 Javascript
jQuery及JS实现循环中暂停的方法
Feb 02 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
Mar 01 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
Jun 23 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
Jan 05 Javascript
JS判断图片是否加载完成方法汇总(最新版)
May 13 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
JavaScript实现复制文章自动添加版权
Aug 02 Javascript
JavaScript在控件上添加倒计时功能的实现代码
Jul 04 Javascript
js实现简易聊天对话框
Aug 17 Javascript
JS实现倒计时图文效果
Nov 17 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
php zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
Python sys.argv用法实例
2015/05/28 Python
python urllib爬取百度云连接的实例代码
2017/06/19 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
Python代码需要缩进吗
2020/07/01 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
编程输出如下图形
2013/11/24 面试题
自我评价中英文语句
2013/11/30 职场文书
优秀教师主要事迹
2014/02/01 职场文书
个人简历自我评价
2014/02/02 职场文书
办公室打字员岗位职责
2014/04/16 职场文书
班级团队活动方案
2014/08/14 职场文书
学习十八大的心得体会
2014/09/12 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书