2017-06-06 58 views
0

我試圖將我的angular 2應用程序部署到heroku,但是當我嘗試構建生產時,會出現一長串錯誤。我應該提到,在服務中,應用程序運行時沒有問題和錯誤。 The list of errors is showed in attached photoAngular 2:ng build - ng服務運行時產生的錯誤

我找不到解決此問題的任何解決方案。所有主要模塊都更新到最新版本。謝謝

+0

確保您從模板訪問的組件屬性是「public」。 – 2017-06-06 14:50:08

回答

0

我的猜測是,如果你要運行ng-serve --prod,你會得到相同的錯誤。當你沒有指定 - 產生許多不同的錯誤將被忽略。

例如,如果沒有--prod,它會編譯並且不會警告您指定的類型中沒有提及屬性引用。現在,如果你去改變那個對象類型來鍵入任何錯誤就會消失。

沒有你的錯誤在這裏列出我相信他們中的很多人都是上面的簡單錯誤。您可能需要返回並更新您的類型,以確保您在* .ts或* .html文件中引用的任何屬性都添加到類定義中。

0

第一對幾行與您的財產/方法_centerMap設置爲private有關。如果你想在模板中使用一個屬性/方法,它需要是public(我不確定protected)。

Property X does not exist on type 'Object'很可能與您的類型有關。與爲服務器開發服務器相比,當您爲生產構建時,我認爲類型檢查更爲嚴格。我認爲地方在你的代碼有屬性的對象,它看起來是這樣的:

public myObject: Object = { 
    fillColor: 'someValue', 
    // other properties 
}; 

在因爲這些屬性不是默認Object定義的類型檢查失敗的話。要修正這個錯誤,請刪除所有類型一起或改變它的東西是這樣的:

public myObject: { fillColor: string } = { 
    fillColor: 'someValue', 
    // other properties 
}; 

如果您在對象有很多的屬性,我建議建立一個Interface

export default interface MyObject { 
    fillColor: string; 
} 

,你可以使用這樣的:

import MyObject from '/path/to/the/interface'; 

public myObject: MyObject = { 
    fillColor: 'someValue', 
    // other properties 
}; 

Property 'height' is private ...錯誤是你第一次幾行的同樣的問題 - 屬性/方法設置爲private,而不是public。問題只是在一個不同的文件。

+0

你完全正確!你提供的答案解決了我的問題。首先,我認爲這些錯誤與模塊之間的某些不兼容性有關,因爲錯誤不會出現一些變化,而且在我使用ng服務時不會發生。後來,我明白ng服務會跳過一些「生產模式」錯誤並讓應用程序運行。謝謝你,我希望你的回答也能幫助別人 – user3076027

相關問題