Angular ng build --target = production给出错误

时间:2017-05-12 07:57:19

标签: angular build angular-cli production

我使用Angular-CLI创建了一个新的Angular项目。

我使用的版本是:

Angular-Cli:1.0.2

Angular:4.0.0。

我已经在其中添加了很多代码但是现在,当我使用下面的命令构建我的项目时,我得到了大量的错误

ng build --target=production --env=staging

错误:

  

/src/app/views/signup/signup.component.html(21,86):Property' email'受到保护,只能在课堂上访问' SignUpComponent'及其子类。

     

/src/app/views/signup/signup.component.html(26,80):属性'密码'受到保护,只能在课堂上访问' SignUpComponent'及其子类。

有人可以在这方面帮助我,我该如何删除这些错误?当我省略--target=production过去时,构建成功但是我遇到了一个问题,即没有指定目标浏览器缓存旧的部署版本,用户必须删除浏览器缓存以实现最新的更改/部署。

2 个答案:

答案 0 :(得分:5)

您的电子邮件和密码属性是否定义为私有?它们是否在组件的模板中使用?然后他们需要从私人改为公共。

使用Angular CLI的生产模式时,会自动获得以下内容:

  • --aot设置为true
  • --output-hashing设置为全部(指纹资产)
  • --sourcemaps设置为false
  • --extract-css设置为true(为全局样式创建真正的css文件,而dev将.js文件设置为重建优化)
  • 如果在CLI json
  • 中配置,则添加服务工作者
  • process.env.NODE_ENV值替换模块中的production(某些库需要这样做,比如反应)
  • 在代码上运行uglify

有关详情,请参阅此处:https://github.com/angular/angular-cli/pull/6232

最有可能产生这些错误的是aot编译器。 aot编译器在TypeScript中编译模板,因此会生成更多类型错误。另一种方法是使用--prod而不是aot。

答案 1 :(得分:2)

您尝试在电子邮件和密码上设置公开可见性。