Han*_*Sun 7 javascript node.js webpack
以下是我的插件属性webpack.config.js:
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
}),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('production'),
}
}),
new webpack.optimize.UglifyJsPlugin({
compressor: {
warnings: false
}
}),
new CompressionPlugin({
asset: '{file}',
algorithm: 'gzip',
regExp: /\.js$|\.html$/,
})
],
Run Code Online (Sandbox Code Playgroud)
有时我想禁用,CompressionPlugin而有时我想启用它。但是,创建两个webpack配置文件看起来很笨拙。我想知道是否存在使用命令行参数动态启用/禁用插件的方法?
例如,如果我可以webpack --disable-compression-plugin禁用,那就太好了CompressionPlugin。有人对此有任何想法吗?
尝试使用yargsnpm模块来执行此操作:
npm install yargs --save-dev
Run Code Online (Sandbox Code Playgroud)
在webpack.config.js:
var webpack = require('webpack');
var yargs = require("yargs");
...
var argv = yargs
.boolean("disable-compression-plugin")
.argv;
...
// use argv.disableCompressionPlugin to check the option
module.exports = {
...
plugins: (function(argv) {
var plugins = [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
}),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('production'),
}
}),
new webpack.optimize.UglifyJsPlugin({
compressor: {
warnings: false
}
})
];
// HERE IS OPTION CONDITION
if (argv.disableCompressionPlugin) {
plugins.push(new CompressionPlugin({
asset: '{file}',
algorithm: 'gzip',
regExp: /\.js$|\.html$/,
}));
}
return plugins;
})(argv),
...
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2269 次 |
| 最近记录: |