通过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 源码分析笔记(7) Queue
Jun 19 Javascript
EasyUI中的tree用法介绍
Nov 01 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
Mar 04 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
Oct 09 Javascript
jQuery select自动选中功能实现方法分析
Nov 28 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
Dec 08 Javascript
JS实现简单短信验证码界面
Aug 07 Javascript
js中less常用的方法小结
Aug 09 Javascript
纯js实现图片匀速淡入淡出效果
Aug 22 Javascript
详解使用angular的HttpClient搭配rxjs
Sep 01 Javascript
React 路由懒加载的几种实现方案
Oct 23 Javascript
vue实现图片按比例缩放问题操作
Aug 11 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
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
ThinkPHP路由详解
2015/07/27 PHP
PHP实现简易计算器功能
2020/08/28 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
用javascript自动显示最后更新时间
2007/03/15 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
js获取内联样式的方法
2015/01/27 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
Vue.js 表单控件操作小结
2018/03/29 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
python自动安装pip
2014/04/24 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
Python中使用支持向量机SVM实践
2017/12/27 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
python实现银行账户系统
2021/02/22 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
JVM是一个编译程序还是解释程序
2012/09/11 面试题
石油工程专业毕业生求职信
2014/04/13 职场文书
消防安全宣传口号
2014/06/10 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
2014年煤矿安全工作总结
2014/12/04 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
爱心捐款感谢信
2015/01/20 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android