禁用MSBuild TypeScript编译

Ale*_*sky 43 asp.net msbuild visual-studio typescript

对于Visual Studio项目(如ASP.NET MVC5),如何在构建/调试时禁用TypeScript文件的编译?

我现在有tsconfig.json compileOnSavebuildOnSave设置为false.是否需要在项目中添加某些内容.csproj以确保不编译?

在调试ASP.NET MVC5项目时,它会编译所有.ts文件.

感谢您提供任何帮助.

Fio*_*onn 88

将属性添加<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>到csproj文件中的PropertyGroup(我在Configuration标签下添加了它).这应该禁用所有基于msbuild的TS编译.

启用此设置后,您不需要tsconfig.json设置compileOnSave/buildOnSave.

如果您使用的是较早版本的Visual Studio(我曾暗中考虑过VS 2017或xproj与2015),该属性可能是<TypeScriptEnabled>false</TypeScriptEnabled>.

  • 这也可以通过设置相同的参数在 msbuild 命令行上禁用:“/p:TypeScriptCompileBlocked=True” (6认同)
  • 当然,它也可以放在`csproj.user`文件中.如果一个人不想打扰团队成员. (4认同)
  • 为什么微软没有在Visual Studio的选项或项目的属性中添加一个复选框?为什么我们必须手动编辑proj文件??? (4认同)
  • 仅出于完整性考虑,以下是指向此文档的文档的链接。它在最底部。https://www.typescriptlang.org/docs/handbook/compiler-options-in-msbuild.html (2认同)
  • 我还必须将typescript文件属性中的build操作从“ Typescript File”更改为“ None”,以防止vs2017编译我的文件。 (2认同)

小智 6

我已经配置了所有这些,但仍然没有解决问题(在 Visual Studio 2019 中)。我另外添加了这个:

 <TypeScriptCompileOnSaveEnabled>False</TypeScriptCompileOnSaveEnabled>
Run Code Online (Sandbox Code Playgroud)

并重新启动视觉工作室。从那以后,它开始为我工作。


Ast*_*ant 5

其他解决方案都不适合我,这个解决方案导致项目加载错误(VS 2019 - 16.9.4)

<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>  // doesn't work for me
Run Code Online (Sandbox Code Playgroud)

做同样事情的另一种方法(尽管开销很小)是从编译索引中删除所有 TS。

<TypeScriptCompile Remove="*" />
Run Code Online (Sandbox Code Playgroud)

我用它来避免编译节点模块,如下所示:

<TypeScriptCompile Remove="node_modules\**" />
Run Code Online (Sandbox Code Playgroud)

  • `TypeScriptCompile` 应该在 `ItemGroup` 元素中使用。 (5认同)
  • 在 VS 16.9.4 中,将 `&lt;TypeScriptCompile Remove="*" /&gt;` 添加到 csproj 的属性组会产生“错误:元素 &lt;TypeScriptCompile&gt; 中的属性“Remove”无法识别。”。 (3认同)