2017-08-01 85 views
0

我有一個Visual Studio社區2017(15.2)項目與AngularJS 1.6.5和NancyFX服務器。typescript在保存中斷編譯在Visual Studio 2017中的AngularJS

代碼在這裏:

https://github.com/GusBeare/NancyAngularTests

這是一個遊樂場我學習和測試功能,我想一個真正的項目中使用。

所有AngularJS的東西都在Typescript文件中,我的tsconfig.json告訴編譯器將它全部編譯成一個JS文件Content/js/bundle.js

當我構建並運行項目時,一切都按預期工作,並且沒有問題。但是,如果我的應用程序運行時編輯的.ts文件,它打破了這個錯誤:

angular.min.js:7 Uncaught Error: [$injector:nomod] 
http://errors.angularjs.org/1.6.5/$injector/nomod?p0=mySPA 

上保存編譯似乎因爲Content/js/bundle.js上保存重建工作的罰款。但是,爲什麼只有在保存時編譯纔會出現Angular錯誤?

我在AngularJS代碼中做錯了什麼,或者這是一個Typescript/Visual Studio的東西?

如果我構建併發布項目,它在IIS下運行良好,我無法打破它。

+0

我相信這是綁定到bundle.js中的代碼的順序。當我在VS中構建項目時,tsconfig.json中的文件順序得到遵守。但是,當我運行項目並編輯+保存.ts文件並將「compileonSave」選項設置爲true時,捆綁的代碼的順序變成其他一些破壞它的順序。 –

+0

如果我能找到時間,我會嘗試一種不同的綁定方法。 –

回答

0

我注意到,如果我使用tsc編譯打字稿,那麼我的tsconfig.json中的文件順序就會被尊重,所以我認爲VS打字工具中存在一個錯誤。

所以我去了https://www.microsoft.com/en-us/download/details.aspx?id=48593,注意到一個新版本剛剛發佈(2.4.1)。

安裝這個固定的問題給我。 ts編譯器現在按照指定的順序讀取文件,並將其正確捆綁。

更新

不,我錯了。這不是固定的。如果我構建項目,那麼它將無法運行,因爲它不遵守文件編譯順序。但是,當我直接編輯包並更改順序,然後進一步編輯.ts文件時,bundle.js會被正確重建。但是,如果我再次關閉該項目並構建它是不正確的。 tsc仍然可以在命令行上按照正確的順序進行綁定。 這是所有非常錯誤。

更新2

由於周圍的工作我轉換app.js回JS和再搬出來的TS包的。現在在bundle.js之前先加載,一切正常。

相關問題