通过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提示效果(仿腾讯弹出层)
Feb 05 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
May 08 Javascript
jQuery新的事件绑定机制on()示例应用
Jul 18 Javascript
EasyUi combotree 实现动态加载树节点
Apr 01 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
Jan 22 Javascript
详解node.js搭建代理服务器请求数据
Apr 08 Javascript
JavaScript 中Date对象的格式化代码方法汇总
Sep 06 Javascript
ES6中字符串string常用的新增方法小结
Nov 07 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
Jun 27 Javascript
vue 录制视频并压缩视频文件的方法
Jul 27 Javascript
微信小程序收藏功能的实现代码
Jun 19 Javascript
Js利用正则表达式去除字符串的中括号
Nov 23 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 身份证号验证函数
2009/05/07 PHP
Php Image Resize图片大小调整的函数代码
2011/01/17 PHP
PHP goto语句用法实例
2019/08/06 PHP
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
node.js连接mysql与基本用法示例
2019/01/05 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
python中类的一些方法分析
2014/09/25 Python
Python生成随机MAC地址
2015/03/10 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
机械制造专业毕业生求职信
2014/03/02 职场文书
节能环保演讲稿
2014/08/28 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
2014年设计师工作总结
2014/11/25 职场文书
儿园租房协议书范本
2014/12/02 职场文书
如何用PHP websocket实现网页实时聊天
2021/05/26 PHP
如何判断pytorch是否支持GPU加速
2021/06/01 Python
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL