通过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 定义初始化数组函数
Sep 07 Javascript
javascript客户端解决方案 缓存提供程序
Jul 14 Javascript
node.js中的console.dir方法使用说明
Dec 10 Javascript
JS实现自适应高度表单文本框的方法
Feb 25 Javascript
基于jquery animate操作css样式属性小结
Nov 27 Javascript
jQuery验证插件validate使用详解
May 11 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
Nov 30 Javascript
JS区分Object与Aarry的六种方法总结
Feb 27 Javascript
react native带索引的城市列表组件的实例代码
Aug 08 Javascript
如何编写一个完整的Angular4 FormText 组件
Nov 18 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 Javascript
微信小程序实现点击按钮后修改颜色
Dec 05 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
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
PHP写日志的实现方法
2014/11/05 PHP
php清除和销毁session的方法分析
2015/03/19 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
AngularJS 购物车全选/取消全选功能的实现方法
2017/08/14 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
python 回调函数和回调方法的实现分析
2016/03/23 Python
Python numpy 常用函数总结
2017/12/07 Python
对python条件表达式的四种实现方法小结
2019/01/30 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
体育老师的教学自我评价分享
2013/11/19 职场文书
医院护士的求职信
2014/01/03 职场文书
毕业自我评价
2014/02/05 职场文书
幼儿园父亲节活动方案
2014/03/11 职场文书
车辆工程专业求职信
2014/06/14 职场文书
工作年限证明模板
2015/06/15 职场文书
只需要12页,掌握撰写一流商业计划书的技巧
2019/05/07 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android