簡體   English   中英

打字稿在保存時編譯會中斷Visual Studio 2017中的AngularJS

[英]typescript compile on save breaks AngularJS in Visual Studio 2017

我有一個帶有AngularJS 1.6.5和NancyFX服務器的Visual Studio Community 2017(15.2)項目。

代碼在這里:

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下運行良好,並且無法中斷。

我注意到在VS之外,如果我使用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之前加載,並且一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM