通过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实现鼠标滑过显示导航下拉列表
Sep 12 Javascript
JavaScript中prototype为对象添加属性的误区介绍
Oct 15 Javascript
js语法学习之判断一个对象是否为数组
May 13 Javascript
JQuery工具函数汇总
Jun 15 Javascript
简介AngularJS的HTML DOM支持情况
Jun 17 Javascript
jQuery手机拨号界面特效代码分享
Aug 27 Javascript
JavaScript实现各种排序的代码详解
Aug 28 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
May 30 Javascript
聊聊鉴权那些事(推荐)
Aug 22 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
Oct 25 Javascript
antd table按表格里的日期去排序操作
Nov 17 Javascript
关于React Native 无法链接模拟器的问题
Jun 21 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
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
php广告加载类用法实例
2014/09/23 PHP
PHP的引用详解
2015/02/22 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
2016/02/26 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
PHP实现获取文件mime类型多种方法解析
2020/05/28 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
javascript jscroll模拟html元素滚动条
2012/12/18 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
浅谈javascript 函数属性和方法
2015/01/21 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
微信小程序如何获取用户头像和昵称
2019/09/23 Javascript
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
Python中字典和集合学习小结
2017/07/07 Python
python九九乘法表的实例
2017/09/26 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
在python里面运用多继承方法详解
2019/07/01 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
internal修饰符起什么作用
2013/12/16 面试题
怎样写好创业计划书的内容
2014/02/06 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
分享7个 Python 实战项目练习
2022/03/03 Python
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android