2017-06-16 27 views
-1

在角/ CLI /打字稿2.3的應用程序後,我有吐出類型的錯誤代碼:看到錯誤納克建立

TypeError: Cannot assign to read only property 'myValue' of object '#'

而且它是最有可能發生變異的一個屬性的嘗試對象聲明爲const。問題的原因在這裏不是我的觀點。

我的觀點和問題是,我只能在ng build之後纔看到它們,但在本地運行時看不到它們。我如何讓他們在ng serve期間可見?

編輯

它看起來好像'use scrict'注入內置的代碼,但不會在ng serve一個通過的WebPack運行。

引用此blog post comment

const foo = 27; 
// Any of the following uncommented lines throws an exception. 
// Assignment operators: 
foo = 42; 

但這會:

'use strict'; // <<<<<<<<<<<<<<---------------------!!!!!!!!!!!!!!!! 
const foo = 27; 
// Any of the following uncommented lines throws an exception. 
// Assignment operators: 
foo = 42; 
+0

'ng serve'構建應用程序並啓動Web服務器。所以,無論你在編譯時遇到什麼錯誤,你都應該看到「服務」。 – OysterMaker

+0

這就是我的想法。但顯然情況並非如此。 – user776686

+0

你正在運行什麼命令? 'ng build --prod'? – developer033

回答

0

我假設你正在使用ng build --prod@developer033在評論中提到。生產(AoT)彙編和非生產彙編是兩個不同的東西。 Prod國旗更「嚴格」。

你可以看看在做的/生產代碼注意事項從這個鏈接:https://github.com/rangle/angular-2-aot-sandbox

而簡單地回答你關於如何從ng build --prodng serve檢測錯誤的問題:你不能。也許如果你使用AoT設置來設置你的linters,你的IDE可以告訴你什麼和不該做什麼。

+0

因此,如果我運行'ng serve --aot'不是一個好的預檢測試嗎? (感謝沙盒鏈接 - 一個非常有用的資源) – user776686

+0

@ user776686是的,但是'ng serve --aot'和'ng build --aot'需要花費相同的時間來啓動應用程序。我的意思是「服務」和「服務」不是一回事。並且爲了確保您的應用程序在aot模式下正確運行,您需要使用'--aot'選項。 – echonax

+0

是的,我的觀點是能夠在部署到服務器之前看到錯誤*。 – user776686