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