2017-08-01 83 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之前先加载,一切正常。

相关问题