通过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 相关文章推荐
javascript之学会吝啬 精简代码
Apr 25 Javascript
CSS和Javascript简单复习资料
Jun 29 Javascript
js实现有时间限制消失的图片方法
Feb 27 Javascript
新手快速学习JavaScript免费教程资源汇总
Jun 25 Javascript
如何用javascript计算文本框还能输入多少个字符
Jul 29 Javascript
两行代码轻松搞定JavaScript日期验证
Aug 03 Javascript
jQuery动态生成Bootstrap表格
Nov 01 Javascript
BootStrap Fileinput初始化时的一些参数
Dec 30 Javascript
tab栏切换原理
Mar 22 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
Sep 28 Javascript
详解Vue项目部署遇到的问题及解决方案
Jan 11 Javascript
vue模式history下在iis中配置流程
Apr 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中的数组操作函数整理
2008/08/18 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
three.js中文文档学习之创建场景
2017/11/20 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
Python3基础之输入和输出实例分析
2014/08/18 Python
Python迭代器和生成器介绍
2015/03/06 Python
用Python实现KNN分类算法
2017/12/22 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
python实现图书馆研习室自动预约功能
2018/04/27 Python
python获取交互式ssh shell的方法
2019/02/14 Python
解决python 文本过滤和清理问题
2019/08/28 Python
Pycharm修改python路径过程图解
2020/05/22 Python
用python计算文件的MD5值
2020/12/23 Python
Python实现京东抢秒杀功能
2021/01/25 Python
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
汉森批发:Hansen Wholesale
2018/05/24 全球购物
实习自荐信
2013/10/13 职场文书
高中地理教学反思
2014/01/29 职场文书
公司会议策划方案
2014/05/17 职场文书
高一军训的心得体会
2014/09/01 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
幸福终点站观后感
2015/06/04 职场文书
征求意见函
2015/06/05 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
Nginx配置Https安全认证的实现
2021/05/26 Servers
青岛市的收音机研制与生产
2022/04/07 无线电