1、为什么要清除console信息
作为开发人员,难免不了要打log信息调试程序,有时候我们一个模块可能要打十多个log,然后每个log用不同的字符串标识,由于每次打的log的可能下次调试的时候还有用,所以我们不会去删除它,(ps:我以前也是认为把log清除了不就不用这么麻烦了?可是当我遇到一个新的bug的时候,我又要把上次删除的console又加上,这样反反复复来了很多次,我还是决定不清除console了)然而如果你打包发布的产品还有console信息的话,总感觉有点怪怪的,如果console里面还有报错,那就。。。
2、利用angular-cli区分dev模式和prod模式
利用angular-cli,我们很容易知道当前代码环境是处于dev模式,还是prod模式,在angular-cli脚手架的开发环境下有一个environments文件夹,里面有一个environment.ts文件,里面有个对象用于标识是dev模式,还是prod模式
angular-cli开发环境src目录下的environments文件夹:
environment.ts文件内容:
上面的注释大概就是说:当你执行
ng build --env=prod
命令进行项目打包时,environment.prod.ts的内容会替代environment.ts的内容,具体谁替换谁,我们可以去angular-cli.json里面进行配置
angular-cli.json文件配置:
3、如何在prod模式下清除console
由于main.ts是angular程序的启动入门,所以我们只需要在这个文件里面判断是dev模式还是prod模式,如果是prod模式,我们就重写console,然后prod模式下的代码就不会打印console信息了,具体实现如下: