在ReactJs生产模式下停用Console.log和Logger或Redux存储

时间:2019-05-14 12:17:21

标签: reactjs react-redux console.log

我正在部署我的第一个ReacctJs应用程序,并且我想停用应用程序中显示在浏览器控制台中的所有数据。这包括redux存储Logger,console.logs代码等。

我尝试了几种方法,可以在google上找到。

我的商店代码如下

const loggerMiddleware = createLogger({
                        predicate: (getState, action) => process.env.NODE_ENV !== 'production'
            });

export const store = createStore(
    rootReducer,
    applyMiddleware(
        thunkMiddleware,
        loggerMiddleware
    )
);

我已经安装了transform-remove-console软件包,并在我的根文件夹中创建了一个.babelrc,其内容如下:

{
  "env": {
    "production": {
      "plugins": ["transform-remove-console"]
    }
  }
}

以上代码均未删除控制台中的内容。请您对此解决方案提出任何想法。

1 个答案:

答案 0 :(得分:0)

如果您使用terser-webpack-pluginuglify-webpack-plugin,则可以使用drop_console选项https://github.com/mishoo/UglifyJS2#compress-options

webpack.config.js

中的一些代码示例
module.exports = {
  // ... other options
  optimization: {
    minimize: !DEV,
    minimizer: [
      new TerserPlugin({
        terserOptions: {
          // ... other terser options
          compress: {
            drop_console: true,
          },
        },
      }),
    ],
  },  
}

此处有一些讨论Can uglify-js remove the console.log statements?