Visual Studio 2013 Typescript编译器不遵守'_references.ts'文件

西蒙·韦弗

我是Typescript的新手,并且最近几天一直在Visual Studio 2013 Update 2(本机包含所有支持)中工作。

在我的项目的属性页上的Visual Studio中,我选择了以下选项。

这意味着当我保存文件时,它将自动将所有打字稿文件编译在一起,并创建一个RRStore.js文件。然后,我只需在ASP.NET中使用BundleManager包括它,就好像它是任何旧的JS文件一样。我没有使用模块加载器,因为没有太多的JS代码。

在此处输入图片说明

为了以正确的顺序解决依赖关系,TS编译器需要一个_references.ts文件,因此我创建了一个这样文件:

/// <reference path="RR.ErrorHandling.ts" />
/// <reference path="RR.JQueryPlugins.ts" />
/// <reference path="RR.Util.ts" />

/// <reference path="viewmodel/UserViewModel.ts" />

/// <reference path="viewmodel/AddressViewModel.ts" />
/// <reference path="viewmodel/ProductViewModel.ts" />
/// <reference path="viewmodel/CartItemViewModel.ts" />
/// <reference path="viewmodel/CheckoutViewModel.ts" />

/// <reference path="viewmodel/StoreWizardViewModel.ts" />
/// <reference path="viewmodel/DefenderWizardViewModel.ts" />

/// <reference path="viewmodel/MainViewModel.ts" />

/// <reference path="RR.YoutubeLoader.ts" />

这个文件意味着当我Ctrl+S在编辑一个TS文件后在Visual Studio中命中它时,它将按顺序将所有其他TS文件组合在一起,因此原型链之类的东西对于继承是正确的。

Ctrl+S保存TS文件时,此方法工作正常

然后,我不得不对某些C#代码进行更改-当然,在那之后,我需要点击Ctrl+F5以构建项目。令我惊讶的是,我在浏览器中遇到了奇怪的JS错误-关于对象上不存在的原型。

我在RRStore.js浏览器中查看了生成的Typescript文件,并检查了所有文件的顺序,并将其放到了RR.YoutubeLoader.tsFIRST文件中

那真是怪了!(尤其是因为它在我上面的参考文献列表中排在最后)。

我转到该文件,然后单击Ctrl+S“刷新” RRStore.js,一切恢复正常。

换句话说,当我进行完全构建时,_references.ts不遵守文件的顺序,但是当我单击Ctrl+S则遵循该顺序这是怎么回事?

西蒙·韦弗

编辑:更新:事实证明_references.ts需要在项目的根目录中才能被编译器识别。所以这是首选的方式:-)这种方法也可以...但是请不要这样做:


原始解决方法:

当我通过阅读生成RRStore.js文件我发现似乎是一个明显随机的顺序:RR.YoutubeLoaderProductViewModelDefenderViewModelStoreViewModel等。

我意识到可能只有一种解释。。。

我打开了.csproj文件,并确定编译器已按照文件最初添加到我的项目中的顺序处理文件

因此,我将_references.ts文件移至文件中的第一个MySite.csproj文件-现在它可以正确识别文件并按正确的顺序编译所有文件。

我不确定这是否是已知的错误,但这对我来说是一个适当的解决方案。

MyProject.csproj

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Visual Studio无法打开TypeScript * .ts文件?

在Visual Studio 2013中使用Roslyn编译器

Visual Studio 2013编译错误-缺少文件

使用Visual Studio 2013 IDE编译CUDA Mex文件

Visual Studio 2013更新2:编辑TypeScript文件非常慢

什么是 ?和@符号表明此编译器错误?-Visual Studio 2013编译器

Visual Studio 2013错误创建EDMX文件

Visual Studio 2013无法打开* .cshtml文件

在未安装node.js的情况下,Visual Studio 2013如何编译TypeScript文件?

Visual Studio 2017是否支持_references.js文件?

配置Visual Studio 2013以允许ASPNETCOMPILER使用x64编译器进行预编译

从Visual Studio 2013编译为Mono

C ++ Visual Studio 2013编译错误?

Visual Studio 2013可以从.less文件生成CSS文件吗?

在Visual Studio 2013中更改编译器错误语言

安装Visual Studio 2015是否会更改VS 2013使用的编译器?

Visual Studio 2013中可能的C / C ++编译器错误

如何防止输出屏幕在Visual Studio 2013 C ++编译器中消失

static_assert(std :: is_abstract)在Visual Studio 2013中导致编译器错误

Visual Studio在转换为2013的项目上使用较旧的2012编译器

在添加控制器中,Visual Studio 2019创建ts文件而不是cs

Visual Studio 2013无法从服务器检索文件夹信息

修改HTML文件时,Visual Studio 2013自动浏览器链接

用于 JS 事件、文件类型的 Visual Studio Code TS Intellisense

Git与Visual Studio 2013

无法在Visual Studio Express 2013中安装VSIX扩展文件?

Visual Studio 2013缓存旧版本的.js文件

如何在Visual Studio 2013中打开SSRS(.rptproj)文件?

无法在Visual Studio 2013中打开HTML文件