首先介绍一下externals:
按照官方文档的解释:
如果我们想引用一个库,但是又不想让webpack打包,并且又不影响我们在程序中以CMD、AMD或者window/global全局等方式进行使用,那么就可以通过配置externals来实现这样的功能。
externals主要是用在创建一个库的时候用的,在我们创建一些库的时候,有些依赖我们可以通过externals来定义多种方式的引用和使用。但是也可以在我们项目开发中充分使用。
假设:我们要开发一个自己的库,里面引用了jquery这个包,经过webpack打包之后,我们会发现,jquery也被打了进来,此时我们的打包文件就会非常大,这个时候为了不把jquery这个第三方的包打进来,我们就可以借助externals的方式来引入。也就是说,自己开发的库本身不打包这个juqery,只是需要用户环境来提供。
使用jquery
externals:{
"jquery": {
commonjs: "jquery",//如果我们的库运行在Node.js环境中,import _ from 'jquery'等价于const _ = require('jquery')
commonjs2: "jquery",//同上 amd: "jquery",//如果我们的库使用require.js等加载,等价于 define(["jquery"], factory);
root: "jQuery"//如果我们的库在浏览器中使用,需要提供一个全局的变量‘_’,等价于 var _ = (window.jQuery) or (jQuery);
}
}
这样配置之后,我们就可以在项目中引用jquery了
import _ from "jquery" const _ = require("jquery")等等方式都可以