【问题标题】:uglifyjs drop_console / pure_funcs is not working in webpackuglifyjs drop_console / pure_funcs 在 webpack 中不起作用
【发布时间】:2016-12-02 12:41:40
【问题描述】:

我有如下配置,但还是没有去掉console.log语句:

new webpack.optimize.UglifyJsPlugin({
    compress: {
        warnings: false,
        pure_funcs: ['console.log'],
        drop_console: true,
        comments: false
    },
    pure_funcs: ['console.log'],
    drop_console: true,
    comments: false
})

我做错了什么?

【问题讨论】:

  • 你使用的是哪个版本的 webpack?
  • 版本 1.14.0.

标签: optimization webpack uglifyjs


【解决方案1】:

您收到的消息可能是控制台中的调试消息,而不是 console.log。我有一个类似的问题,我认为使用 drop_console 就足够了。我还必须添加 drop_debugger,因此根据您的示例,这应该会删除所有控制台输出。

new webpack.optimize.UglifyJsPlugin({
  compress: {
    warnings: false,
    drop_console: true,
    drop_debugger: true
  },
  comments: false  
})

【讨论】:

    【解决方案2】:

    在我的情况下,这不是 uglifyjs 的原因。这是由 babel-loader 引起的,它将把 console.log 转换为 (e = console).log。

    我现在不知道如何修复它。最后,我必须使用一个名为babel-plugin-transform-remove-console 的 babel 插件来删除控制台。

    但是我确实想使用 UglifyJsPlugin。

    这是给那些可以找到解决方案的人的提示。

    【讨论】:

    • 原来这里webpack不是很靠谱,你用babel-plugin-transform-remove-console的解决方案要好很多。
    【解决方案3】:

    我遇到了同样的问题,drop_console 在我的 react 脚本设置中不起作用(在 Windows 10 上,React-script 版本 0.8.5)。

    为了重现这个问题,我创建了一个全新的应用程序,在 App.js 中的某处添加了console.log,在 webpack.config.prod.js 中添加了drop_console: true。然而,在这个简单的设置中,drop_console 有效,console.log 被删除。

    由于它仍然无法在我的真实应用中运行,我安装了strip-loader:

    npm install --save-dev strip-loader
    

    然后在node_modules\react-scripts\config 中编辑webpack.config.prod.js(没有从反应中弹出):

    var WebpackStrip = require('strip-loader'); // around line 20
    ...
    // inserted in module/loaders between babel and style loaders, around line 168
      { 
        test: /\.js$/, 
        loader: WebpackStrip.loader('debug', 'console.log')
      },
    

    果然,所有console.log 语句都被删除了(npm run build)。然后我从配置中删除了所有更改,console.log 仍然被删除。我卸载了strip-loader,构建仍然成功地删除了console.log 语句。

    我无法解释这种行为,但至少它有效(虽然有点神奇)。

    【讨论】:

      猜你喜欢
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-28
      相关资源
      最近更新 更多