禁用 MSBuild TypeScript 编译
Posted
技术标签:
【中文标题】禁用 MSBuild TypeScript 编译【英文标题】:Disable MSBuild TypeScript Compile 【发布时间】:2017-07-14 19:02:18 【问题描述】:对于诸如 ASP.NET MVC5 之类的 Visual Studio 项目,如何在构建/调试时禁用 TypeScript 文件的编译?
我目前将 tsconfig.json
compileOnSave
和 buildOnSave
设置为 false。是否需要在项目.csproj
中添加某些内容以确保它不会被编译?
在调试 ASP.NET MVC5 项目时,它会编译所有 .ts
文件。
感谢您提供的任何帮助。
【问题讨论】:
【参考方案1】:将属性<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
添加到您的csproj 文件中的PropertyGroup(我将它添加到配置标签下)。这应该会禁用所有基于 msbuild 的 TS 编译。
启用此设置后,您不需要 tsconfig.json 设置 compileOnSave/buildOnSave。
如果您使用的是旧版本的 Visual Studio(我曾隐含地考虑过 VS 2017 或 xproj 与 2015),则该属性可能是 <TypeScriptEnabled>false</TypeScriptEnabled>
。
【讨论】:
当然也可以放在csproj.user
文件中。如果不想打扰团队成员。
为了完整起见,这里是提到这一点的文档的链接。它在最底部。 typescriptlang.org/docs/handbook/…
为什么微软没有在 Visual Studio 的选项或项目的属性中添加复选框???为什么一定要手动编辑proj文件???
我还必须将 typescript 文件属性中的构建操作从 Typescript File
更改为 None
以防止 vs2017 编译我的文件。
这也可以通过设置相同的参数在 msbuild 命令行上禁用:"/p:TypeScriptCompileBlocked=True"【参考方案2】:
对于 Visual Studio 2015,在 PropertyGroup 下添加以下行对我有帮助。
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
【讨论】:
【参考方案3】:我遇到了这个问题,测试了此处发布的所有内容,但均未成功,
但是在添加了这个之后,事情就奏效了:
<TypeScriptToolsVersion>3.9</TypeScriptToolsVersion>
似乎我使用的版本无论设置如何都可以编译。
【讨论】:
【参考方案4】:其他解决方案都不适合我,这个导致项目加载错误(VS 2019 - 16.9.4)
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked> // doesn't work for me
做同样事情的另一种方法(尽管开销很小)是从编译索引中删除所有 TS。
<TypeScriptCompile Remove="*" />
我使用它来避免编译节点模块,如下所示:
<TypeScriptCompile Remove="node_modules\**" />
【讨论】:
在 VS 16.9.4 中将<TypeScriptCompile Remove="*" />
添加到 csproj 的属性组会得到 error : The attribute "Remove" in element <TypeScriptCompile> is unrecognized.
。
TypeScriptCompile
应该用在 ItemGroup
元素中。【参考方案5】:
我已经配置了所有这些,但仍然没有解决问题 (在视觉工作室 2019 中)。 我还添加了这个:
<TypeScriptCompileOnSaveEnabled>False</TypeScriptCompileOnSaveEnabled>
并重新启动视觉工作室。之后,它开始为我工作。
【讨论】:
这对我也有用。不过足以重新加载项目。【参考方案6】:下一种方法对我有用(.NET 6、VS2022、ASP.NET Core + Angular 项目)。 将此设置添加到您的 *.csproj 文件中:
<PropertyGroup>
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
</PropertyGroup>
【讨论】:
以上是关于禁用 MSBuild TypeScript 编译的主要内容,如果未能解决你的问题,请参考以下文章