当我构建解决方案(Visual Studio 2012)时,Typescript文件无法编译。

3

当我在Visual Studio 2012中尝试构建我的解决方案时,JavaScript文件没有生成。这只发生在特定的文件中。


如果您通过 VS 删除文件并重新创建它,那可能会解决问题。 - rob
5个回答

8

对我来说问题是文件的构建操作设置不正确。

进入文件属性,确保它被设置为TypeScriptCompile。

文件属性:TypeScriptCompile


2
我发现对于一个新项目,我的.csproj文件缺少一些重要的行-不知道为什么,但很容易解决,我在我的TypeScript博客中谈到了一点:(链接)尽管.ts文件的“Build Action”已经正确设置为“TypeScriptCompile”。要解决这个问题,我需要:
右键单击解决方案资源管理器中的项目并选择卸载项目 右键单击项目并选择编辑 在其相关部分中添加下面代码中的粗体行。
<PropertyGroup Condition=”‘$(Configuration)’ == ‘Debug'”>

<TypeScriptTarget>ES3</TypeScriptTarget>

<TypeScriptRemoveComments>false</TypeScriptRemoveComments>

<TypeScriptSourceMap>true</TypeScriptSourceMap>

<TypeScriptModuleKind>AMD</TypeScriptModuleKind>

</PropertyGroup>

<PropertyGroup Condition=”‘$(Configuration)’ == ‘Release'”>

<TypeScriptTarget>ES3</TypeScriptTarget>

<TypeScriptRemoveComments>true</TypeScriptRemoveComments>

<TypeScriptSourceMap>false</TypeScriptSourceMap>

<TypeScriptModuleKind>AMD</TypeScriptModuleKind>

</PropertyGroup>

<Import Project=“$(VSToolsPath)\TypeScript\Microsoft.TypeScript.targets” />

导入行应放在项目文件的末尾,其他导入元素出现的地方。进行此更改后,我的.ts文件编译正常。在我看来,这个错误已经在后续版本的TypeScript中得到了解决,因为它不是Visual Studio 2013和TS 1.4的问题。

在解决方案资源管理器中右键单击项目,重新加载项目。


1

从Web Essentials 3.0开始,所有TypeScript支持已被移除。更多信息请参见:http://madskristensen.net/post/Web-Essentials-2013-Where-is-the-TypeScript-support.aspx - ProVega
ProVega的链接已更新:http://madskristensen.net/post/web-essentials-2013-where-is-the-typescript-support(没有.aspx后缀) - jeffreypriebe

0

目前VS2013的Typescript插件只在保存时编译,而不是在构建时编译。如果某些typescript文件在外部被编辑或者项目需要从头开始重建,这可能会很麻烦。

我在csproj的<Target Name="AfterBuild">部分末尾添加了以下内容。

<Exec Command="tsc.exe -target ES5 --sourcemap _core.ts"
    WorkingDirectory="$(MSBuildProjectDirectory)\js" />

其中js是存放TypeScript文件的目录,而_core.ts是主要的TypeScript文件,在其头部引用了所有其他TypeScript文件。

现在,即使同事获取了该项目,它也会自动重建所有JavaScript文件。


0

安装Visual Studio的TypeScript 插件 一旦保存TS文件,您就可以立即查看JS代码。 您也可以通过这种方式调试JS。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接