抑制 aot 编译器中的重复错误

Supress duplicate error in aot compiler

我有一个用 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 编译如何工作的重要概念。

看来这条线是 AOT 的罪魁祸首。

[ngClass]="{'active': math.Name == subjectVM.SelectedMathDomain,'active': math.Title == subjectVM.SelectedDomain}"

然后我改成了

[ngClass]="{'active': (math.Name == subjectVM.SelectedMathDomain || math.Title == subjectVM.SelectedDomain)}"

我想知道为什么第一行在 JIT 中没有抛出错误。