接下来我们来说说library和libraryTarget的使用场景。
有些时候我们想要开发一个库,如lodash、underscore这些,这些库既可以用commonjs和amd的方式使用,也可以通过script标签的方式引入使用,目前很多库都是支持这几种使用方式的。
这时候我们就可以使用library和libraryTarget了,我们只需要用用es6的方式写代码,如何编译成umd就交给webpack了。
使用这个tools的例子
window.Tools = {
add: function(num1, num2) {
return num1 + num2
}
}
改为es6的写法
exports default {
add: function(num1, num2) {
return num1 + num2
}
}
接下来配置webpack
module.exports = {
entry: { myTools: "./src/tools.js" },
output: {
path: path.resolve(__dirname, "build"),
filename: '[name].js',
chunkFilename: "[name].min.js",
libraryTarget: "umd",
library: "tools"
}
}
library指定的就是你使用require时的模块名,这里便是require(“tools”)
通过配置不同的libraryTarget会生成不同umd的代码,例如可以只是commonjs标准的,也可以是指amd标准的,也可以只是通过script标签引入的。
开发测试之后,便可以发布到npm给别人使用了。

