我有一个用Angular 2编写的庞大代码库,我想使用angular-cli构建和优化。 ng build 工作正常。但是,当我运行 ng build --prod 时,我得到一个错误让我头撞墙。它说我有一个重复的标识符。此错误会停止输出整个dist文件夹。但我100%确定我的组件中没有重复的标识符。我无法调试任何东西,因为从不输出ng.factory文件。我该怎么告诉编译器谢谢你,但我没有重复......我知道我在做什么。
如果我评论链接到此组件的模板 ng build --prod 工作正常。在这个有问题的组件的模板中,我有像这样的标记
<li class="listmathSubDomain" *ngFor="let subdomain of subjectVM.subDomainArray" [ngClass]="{'active': subdomain.Description == subjectVM.SelectedSubDomain}">
'active'如何成为重复的标识符,然后只在aot中。我是否错过了关于aot编译如何工作的重要概念。
答案 0 :(得分:0)
看来这条线是AOT的罪魁祸首。
[ngClass]="{'active': math.Name == subjectVM.SelectedMathDomain,'active': math.Title == subjectVM.SelectedDomain}"
我把它改成了
[ngClass]="{'active': (math.Name == subjectVM.SelectedMathDomain || math.Title == subjectVM.SelectedDomain)}"
我想知道为什么第一行不会在JIT中抛出错误。