我在使用Visual Studio编译Typescript文件时遇到了一些问题,这引起了极大的麻烦,因为在项目运行时将首先使用已编译的create-react-app my-app --typescript
文件,而不是使用SPA Development Server生成的文件。
我创建了一个React Application(.tsx
),在添加新的.csproj
文件之前,一切工作正常。由于某种原因,如果通过解决方案资源管理器添加了VS,VS将始终编译该文件。
我确保在<PropertyGroup>
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
{...}
</PropertyGroup>
.tsx
我注意到的一件事是,当我添加一个新的<ItemGroup>
<None Remove="<project>\src\<file>.tsx" />
</ItemGroup>
<ItemGroup>
<TypeScriptCompile Include="<project>\src\<file>.tsx" />
</ItemGroup>
文件时,VS将在项目文件中添加几个条目:
{{1}}
有趣的是,当我从项目中删除这些条目时,它仍将编译,直到重新启动VS,才有办法强制Visual Studio不编译 任何 打字稿文件,而不是将它们添加到项目文件中?或者这只是VS中的另一个错误,可以解决?
答案 0 :(得分:0)
模板文件本身中存在一个导致脚本编译的设置,有两种处理方法,要么创建新的.tsx
模板,要么更新现有的模板。脚本模板位于
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\ItemTemplates\AspNetCore\Web\Scripts\1033\TypeScriptJsxFile
在tsxFile.vstemplate中,ProjectItem
的{{1}}上有一个属性,该属性告诉VS编译文件,以修复从模板中删除`ItemType =“ TypeScriptCompile”的问题。查找部分:
TemplateContent
只需删除整个属性并保存,如果您要更新模板,则必须使用管理员权限来编辑文件:
<TemplateContent>
<ProjectItem SubType="Code" ItemType="TypeScriptCompile" TargetFileName="$fileinputname$.tsx" ReplaceParameters="true">file.tsx</ProjectItem>
</TemplateContent>
创建新模板时确实遇到了一些问题,如果遇到麻烦,请see this question。