在项目完成时,需要代码进行打包,打包也就意味着压缩,最开始用的是ng build ,本来项目就不大,使用最简洁的打包,打包出来的包体太大,以至于在游戏中使用加载太过于缓慢,后来想使用ng build --prod 来进行打包,但是却给我出现了members的报错,但是出现了members的报错,也没有具体的指出哪里有问题,这时候真的不知道如何下手,但是在打包之前有一个黄色的提示,说全局版本大于本地版本,这时候我想升级我的本地版本,但是本地版本死活升级不了,期间还把环境给折腾崩了,无奈我只能重装系统,但是在重装系统之后,我在搭建环境的时候还是报一样的提示,ng build --prod打包还是报错members ,但是度娘对于angular8报错members的问题解答实在太少,并且都是歪果仁遇到的,所以没办法,我只能自己想办法,想要升级本地版本看了一下package.json,显示的信息和本地版本相对应,所以我就在想能不能更新新一下package.json,在网上有大把的资源(在我的博客中,上一条也有怎么更新package.json的方法),当发现使用那条命令之后不会再提示说,全局版本大于本地版本了,版本已经达到一致了。这时候我在使用ng build --prod来进行打包的时候,就不会再出现members的错误了,就会提示对应的信息怎么改,哪里有问题,需要你去改,当所有的都改完了之后,你在使用ng build --prod来进行打包,就不会再出现刚才所说的那种问题了,就可以顺利的进行打包了。

在以上过程中,你还需要注意的是:

1.当你没有做任何更改的时候,使用ng build 进行打包的时候,会进行2次编译,也就是你的包体会成2倍进行增长,使得你的包体很大,你需要做的是:

  在tsconfig.json中找到target:es2015这个,进行注释

2.对于更新package.json的更新,可以在这个地方找到答案

3.在页面ts中不能存在 private来声明,只能使用 public 来进行声明数据

4.对于页面的优化,建议在页面初始化的时候(oninit(){}中尽量只请求需要的数据请求,其他的可以放在ngAfterViewInit(){}中)

 

对比:

ng build 打包出来的包体最大

ng build --prod 打包出来的小

ng build --aot 打包出来的最小

ng build --prod   --build--optimizer //编译后进一步压缩文件的大小