Angular 角度ng构建--目标=生产给定错误
我已经使用Angular CLI创建了一个新的Angular项目 我使用的版本有: 角度Cli:1.0.2 角度:4.0.0 我已经在其中添加了很多代码,但是现在,当我使用下面的命令构建我的项目时,我会遇到很多错误Angular 角度ng构建--目标=生产给定错误,angular,build,angular-cli,production,Angular,Build,Angular Cli,Production,我已经使用Angular CLI创建了一个新的Angular项目 我使用的版本有: 角度Cli:1.0.2 角度:4.0.0 我已经在其中添加了很多代码,但是现在,当我使用下面的命令构建我的项目时,我会遇到很多错误 ng build--target=production--env=staging 错误: /src/app/views/signup/signup.component.html(21,86):属性“email”受保护,只能在类“SignUpComponent”及其子类中访问 /src
ng build--target=production--env=staging
错误:
/src/app/views/signup/signup.component.html(21,86):属性“email”受保护,只能在类“SignUpComponent”及其子类中访问
/src/app/views/signup/signup.component.html(26,80):属性“password”受保护,只能在类“SignUpComponent”及其子类中访问
有人能在这方面帮助我吗?我怎样才能消除这些错误?当我省略
--target=production
时,生成成功,但在过去,我遇到了一个问题,即在不指定目标浏览器缓存的情况下,旧部署版本和用户必须删除浏览器缓存以实现最新更改/部署。您的电子邮件和密码属性是否定义为私有?它们是否用于组件的模板中?然后,它们需要从私人变为公共
使用Angular CLI的生产模式时,会自动获得以下信息:
设置为true--aot
--输出哈希设置为all(指纹资源)
设置为false--sourcemaps
设置为true(生成全局样式的真实css文件,而dev生成.js文件作为重建优化)--extract css
- 如果在CLI json中配置,则添加服务工作程序
- 将模块中的
替换为process.env.NODE_env
值(对于某些库,如react,这是必需的)production
- 在代码上运行异常
最有可能产生这些错误的是aot编译器。aot编译器在TypeScript中编译模板,因此会生成更多类型错误。因此,另一种选择是在不使用aot的情况下使用
--prod
。您可以尝试设置电子邮件和密码的公共可见性。是的,电子邮件和密码在组件中受到保护,但在angular cli/angular的早期版本中,它起到了作用。那么,我应该公开它们还是使用--aot=false?公开它们。。。AOT对于生产性能是必需的。我不确定CLI的哪个版本开始转换——对于生产模式,AOT为true。但我的猜测是,这就是它以前起作用的原因。正如P.莫罗尼提到的。。。使用--aot=false并不是一个好的选择,因为aot(提前编译器)可以提高启动性能。