通过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中防刷IP流量软件影响统计的一点对策
Jul 10 Javascript
jquery mobile changepage的三种传参方法介绍
Sep 13 Javascript
javascript正则匹配汉字、数字、字母、下划线
Apr 10 Javascript
Angularjs使用指令做表单校验的方法
Mar 31 Javascript
zTree节点文字过多的处理方法
Nov 24 Javascript
详解Vue中localstorage和sessionstorage的使用
Dec 22 Javascript
JavaScript设计模式之建造者模式实例教程
Jul 02 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
Jul 13 Javascript
Jquery的autocomplete插件用法及参数讲解
Mar 12 jQuery
vue项目打包之开发环境和部署环境的实现
Apr 23 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
Apr 29 Javascript
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
详解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中使用Oracle数据库(4)
2006/10/09 PHP
PHP教程 变量定义
2009/10/23 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
2017/08/17 PHP
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
原生js实现trigger方法示例代码
2019/05/22 Javascript
微信小程序实现侧边栏分类
2019/10/21 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python处理中文编码和判断编码示例
2014/02/26 Python
python+opencv识别图片中的圆形
2020/03/25 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
python同时替换多个字符串方法示例
2019/09/17 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
运动会入场式解说词
2014/02/18 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
领导新年致辞2016
2015/07/29 职场文书
只需要12页,掌握撰写一流商业计划书的技巧
2019/05/07 职场文书
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python