2017-10-19 127 views
1

我有一個用Angular 2編寫的龐大代碼庫,我想用angular-cli來構建和優化代碼庫。 ng build正常工作。然而,當我運行ng build - 產品我得到一個錯誤,讓我把頭撞在牆上。它說我有一個重複的標識符。此錯誤會停止輸出整個dist文件夾。但我100%確定組件中沒有重複的標識符。我無法調試任何內容,因爲ng.factory文件從不輸出。我應該如何告訴編譯器,謝謝,但是我沒有重複的內容。我知道我在做什麼。在aot編譯器中出現重複錯誤

enter image description here

如果我評論它鏈接到該組件納克構建--prod正常工作的模板。在模板這個問題的部分我已經類似這樣的標記

<li class="listmathSubDomain" *ngFor="let subdomain of subjectVM.subDomainArray" [ngClass]="{'active': subdomain.Description == subjectVM.SelectedSubDomain}"> 

如何「主動」成爲一個重複的識別碼,然後,只在AOT。我錯過了關於aot編譯如何工作的一個重要概念。

+0

你可以在最小的例子中重現它嗎? – yurzui

回答

0

看來這條線是AOT的罪魁禍首。

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

,我把它改成

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

我不知道爲什麼第一個行不以JIT拋出一個錯誤。