webpack-externals暴露全局变量
用require的方式来使用依赖库,但是却不希望webpack将它又编译进文件中。
externals 配置选项提供了「从输出的 bundle 中排除依赖」的方法。也就是说webpack打包时不会把库打入bundle中
下面以jQuery为例使用externals进行配置
module.exports = {
...
output: {
...
libraryTarget: "umd"
},
externals: {
jquery: "jQuery"
},
...
}
libraryTarget: “var”(default)
output.library
:会将值作为变量声明导出(当使用 script 标签时,其执行后在全局作用域可用)。
libraryTarget: "window"
:当 library 加载完成,入口起点的返回值将分配给 window 对象。(window可以修改)
对比var,window,global,umd区别
由于浏览器环境和node环境的区别,所以产生了window(客服端浏览器)和global(node服务端)的区别。
我理解的var即在script导入时和window一致,是否可以通过import导入,导入之后的使用还待解释。
umd即支持所有情况的自定义。
总的说设置library即在当前环境的全局引入库文件。