我知道console.log()会影响本机在发布模式下的优先级,这在文档中非常明确,但是console.debug()和console.warn()呢?
否则,什么是打印调试信息的最佳方式,而不是每次我们发布时都不必将它们全部删除?因为我们将再次以开发模式需要这些消息。
答案 0 :(得分:2)
如果您查看文档,则有一些说明如何使用babel插件自动删除发布版本中的所有控制台。*调用。
根据它[1],你只需要安装插件: 1)
from ('/path') {
filter { String line -> line.replaceAll("foo", "bar") }
}
2)在.babelrc文件中添加:
npm i babel-plugin-transform-remove-console --save
1 - https://facebook.github.io/react-native/docs/performance.html#using-console-log-statements
答案 1 :(得分:0)
有一些webpack插件用于删除特定类型的控制台语句,具体取决于您如何配置它们,以便您可以,例如,仅删除console.debug
语句,但上次我尝试时,我没有好运。
如果您正在使用最新版本的React构建React JS应用程序,例如使用create-react-app
创建的15.x,并使用npm run eject
将其弹出,则您将有两个单独的webpack配置。您可以通过修改/config/webpack.config.prod.js
部分中的现有UglifyJsPlugin
配置来修改生产配置(plugins
)并从生产版本中删除所有控制台语句,以便它看起来像这样:
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false,
// Disabled because of an issue with Uglify breaking seemingly valid code:
// https://github.com/facebookincubator/create-react-app/issues/2376
// Pending further investigation:
// https://github.com/mishoo/UglifyJS2/issues/2011
comparisons: false,
// Drop console statements
drop_console: true, // <--- ADD THIS
},
output: {
comments: false,
},
sourceMap: true,
}),
这就是你应该做的所有......但是,这将删除所有控制台语句,而不仅仅是console.debug