Joh*_*ohn 0 javascript console reactjs webpack
我正在使用Webpack和React。在React进行了数周的开发并实现了多个第三方库后,我在检查器的控制台中显示了许多警告错误,但它们不会在运行时影响我的应用程序。
这些错误仅是客户端错误。
但是,如果网站公开,我不希望将这些错误显示给其他用户。
那么如何防止检查员的控制台显示警告错误呢?我刚刚在Facebook上进行检查,看到Facebook刚刚禁用了检查器并显示了自定义消息。
我只是想防止警告消息使用JavaScript自动打印在控制台日志中。
我已经尝试过了,console.clear()但似乎仅适用于Firefox。我需要更全球化的东西。
您可以覆盖这些console方法以使它们不起作用。只要确保先运行此代码,然后再运行其他任何代码即可。
console.log = console.warn = console.error = () => {};
// Look ma, no error!
console.error('Something bad happened.');Run Code Online (Sandbox Code Playgroud)
但是,最好修复这些错误而不是隐藏它们。即使一切似乎都正常,但仍有一些错误仅在某些特定条件下才可见。
首先,您可能应该解决这些警告而不是隐藏它们。但如果你想隐藏生产中的所有警告,则需要使用 React 的生产版本或在 webpack 配置中将环境设置为生产”。
这可以通过使用DefinePlugin插件来实现。本质上,这个插件的作用是替换所有实例,process.env.NODE_ENV以production阻止 React 将错误打印到控制台。
plugins: [
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"',
}),
new webpack.optimize.UglifyJsPlugin({ compress: {warnings: false} }),
new webpack.optimize.DedupePlugin(),
],
Run Code Online (Sandbox Code Playgroud)
在这里,我们还使用 UglifyJsPlugin 来删除库中的所有代码。React 库中的死代码示例:
if (process.env.NODE_ENV == 'development') {
console.warning('...')
}
Run Code Online (Sandbox Code Playgroud)
由于我们设置process.env.NODE_ENV为该production代码将永远不会执行,并且可以从我们的构建中完全消除。
| 归档时间: |
|
| 查看次数: |
4094 次 |
| 最近记录: |