Angular2 为生成环境优化
Angular2的出现,使得前端开发变得如此简单,如果还有不熟悉的童鞋,赶紧学起来吧。Angular2
本文主要记录使用Angular2优化打包项目过程中遇到的一些问题。在此之前,打包项目直接ng build,但是文件体积太大,于是查看官方文档是否有优化方案,果然不负众望,基本方案点这里。
使用--prod构建
ng build --prod
--prod 标志具有如下优化特性:
预先(AOT)编译:预编译 Angular 的组件模板。
生产模式:部署到启用了生产模式的生产环境。
打包:把你的多个应用于库文件拼接到少量包(bundle)中。
最小化:删除多余的空格、注释和可选令牌。
混淆/丑化:重写代码,使用简短的、不容易理解的变量名和函数名。
消除死代码:删除未引用过的模块和很多未用到的代码。
错误一:
但是由于项目中使用到了TweenMax,打包之后程序运行报错:Cannot set property '_autoActivated' of undefined。经过查阅得知:It's caused by GSAP in combination with Angular's Build Optimizer.
解决方案:You have to add the following scripts to angular.json
"scripts": [ "./node_modules/gsap/umd/TweenMax.js" ]
错误二:
再次打包,程序运行还是报错:ERROR Error: No value accessor for form control with unspecified name attribute
解决方案:在使用了[(ngModel)]的标签上添加一个ngDefaultControl属性即可。(这个暂时没查具体什么原理)