javascript - Webpack:我们如何*有条件地*使用插件?

标签 javascript webpack

在 Webpack 中,我有以下插件:

plugins: [
        new ExtractTextPlugin('styles.css'),
        new webpack.optimize.UglifyJsPlugin({
            compress: {
                warnings: false
            },
            drop_console: true,
        }),
    ]

我想应用 UglifyJsPlugin 仅针对特定目标,所以我尝试使用我预期的条件:

plugins: [
        new ExtractTextPlugin('styles.css'),
        (TARGET === 'build') && new webpack.optimize.UglifyJsPlugin({
            compress: {
                warnings: false
            },
            drop_console: true,
        }),
    ]

但是,这失败了,显示了以下错误消息:

E:\myProject\node_modules\tapable\lib\Tapable.js:164
            arguments[i].apply(this);
                         ^

TypeError: arguments[i].apply is not a function

请注意,上面的代码类似于在 plugins 数组末尾设置 false(它会发出相同的错误):

plugins: [
        new ExtractTextPlugin('styles.css'),
        false
    ]

所以,问题是: 有没有办法在 Webpack 上安装条件插件? (除了使用变量?)

最佳答案

您可以使用使用 the spread operator 的语法

plugins: [
    new MiniCssExtractPlugin({
        filename: '[name].css'
    }),
    ...(prod ? [] : [new BundleAnalyzerPlugin()]),
],

关于javascript - Webpack:我们如何*有条件地*使用插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36205819/

相关文章:

javascript - 仅显示表中的某些列

css - Webpack 落在@-webkit-keyframes 通过

javascript - 如何清除/禁用次要和警告控制台日志错误?

javascript - 以 JSON 格式创建 res.cookie,并将值作为对象

javascript - 标题菜单高度增加但 HTML 源代码中没有任何反应?

javascript - 如何访问 JSON 中的数组并在 Jade 中迭代

javascript - 将文件从 node_modules 复制到 dist 目录

webpack - 如何在 webpack 开发服务器中启用根代理?

JavaScript ES6 JSON 导入语法

javascript - 在 Angular 项目中可选择 jquery ui 的轻量级替代方案