我正在使用webpack 2.2.1。
我想在命令行中定义一个变量,然后在我的构建配置中使用该变量。
所以给webpack命令行看起来像(或者它需要的东西):
webpack "--output-path=..." "--env.wibble=NOMF"
我怎么能写出类似的东西:
...
const config = {
entry: {
...
},
output: {
...
},
plugins: [
...
new CopyWebpackPlugin([{
from: '/somepath/' + env.wibble,
to: 'something.js'
}]),
...
],
};
module.exports = config;
如何在构建中定义和使用变量?
我故意不在这里使用NODE_ENV(如果可以的话)。
答案 0 :(得分:2)
--env
选项用于将定义的属性传递给webpack配置,但为此,您需要导出一个返回配置对象的函数,而不是对象本身。
您的配置将是:
module.exports = function(env) {
const config = {
entry: {
// ...
},
output: {
// ...
},
plugins: [
new CopyWebpackPlugin([{
from: '/somepath/' + env.wibble,
to: 'something.js'
}]),
],
};
return config;
};
您可以使用箭头函数隐式返回对象来缩短它:
module.exports = env => ({
entry: {
// ...
},
output: {
// ...
},
plugins: [
new CopyWebpackPlugin([{
from: '/somepath/' + env.wibble,
to: 'something.js'
}]),
],
});