如何从离子2版本应用程序中删除控制台日志?
我正在开发一款离子2 app。当我构建版本apk并在设备上运行时,我仍然可以从chrome:// inspect和视图控制台日志附加到该过程。我试过删除cordova-plugin-console,但这没什么区别。
编辑:我找到了一个可以删除控制台日志的软件包:https://www.npmjs.com/package/remove-console-logs 我不确定在构建版本时如何使用它来自动删除它们。请帮忙。
感谢。
答案 0 :(得分:0)
如果您仍然可以与调试器连接,那么它不是发布版本 - 听起来您可能无意中安装了调试版本或连接到其他应用程序。
EDIT;上面不一定正确 - 有些情况下你可以在发布版本中通过chrome调试js / html / css内容;特别是如果webview可调试性标志在代码中设置/未由构建系统等设置 - 此标志与应用程序调试标志分开,因此如果设置不正确,您将能够调试&# 34;释放"构建/无法调试" debug"构建 - 请参阅remote debugging webviews。 编辑结束。
(请注意,您必须在安装之前签署发布版本)
发布安装是否可能失败,您是否仍在查看以前的调试版本?
假设您有一个发布版本,并且无法通过chrome检查连接查看日志;
console.log调用仍将在发布版本中,除非您将其注释掉 - 并且可能以其他方式显示,例如。 android工具sdk \ tools \ monitor - 确保它们不可见的唯一方法是将它们注释掉。你可以使用类似的东西
console.log = function(){} ;
在设备就绪功能结束后,任何插件已经完成了他们可能做的任何事情 - 尽管仍然没有100%保证,因为一个行为不端的第三方插件或库可能会重新分配它会在以后发生,然后你的电话仍然会发生 - 绝对肯定你需要对它们进行评论。
答案 1 :(得分:0)
您是否尝试删除控制台日志?
cordova plugin rm cordova-plugin-console
然后
cordova build --release android
答案 2 :(得分:0)
您可以使用uglifyjs.config.js在生产版本时删除所有控制台日志。
1。将node_modules中的uglifyjs.config.js复制到项目文件夹
2。在新的配置文件中,如果生成
,则将标志drop_console设置为truevar isProduction = process.env.IONIC_ENV === 'prod';
...
compress: {
drop_console: isProduction
}
3。在package.json
中设置自定义配置"config": { "ionic_uglifyjs": "uglifyjs.config.js" },
就是这样!