【发布时间】:2019-03-20 19:39:37
【问题描述】:
我的 Webpack 配置中有一些插件:
plugins: [
new somePlugin()
]
但是我想在我运行npm run start 时不启动这个插件,但是如果我添加一些标志,比如npm run start --plugin 就运行。是否可以在不将 Webpack 划分为不同配置的情况下实现这一点?
【问题讨论】:
我的 Webpack 配置中有一些插件:
plugins: [
new somePlugin()
]
但是我想在我运行npm run start 时不启动这个插件,但是如果我添加一些标志,比如npm run start --plugin 就运行。是否可以在不将 Webpack 划分为不同配置的情况下实现这一点?
【问题讨论】:
您可以通过使用 webpack 命令传递 env 变量来做到这一点
参考阅读https://webpack.js.org/api/cli/#environment-options
运行 => webpack --env.production
将 webpack.config.js 中的 module.exports 改成这样
module.exports = function(env, argv) {
return {
mode: env.production ? 'production' : 'development',
devtool: env.production ? 'source-maps' : 'eval',
plugins: [
new TerserPlugin({
terserOptions: {
compress: argv['optimize-minimize'] // only if -p or --optimize-minimize were passed
}
})
]
};
};
传递任何 env 变量并使用它有条件地在您的配置中推送插件。
【讨论】: