【发布时间】:2015-10-20 02:48:31
【问题描述】:
编辑
为什么这个问题非常痛苦?到目前为止,当我调试/测试我的 Web 应用程序时,我刚刚在 VS IDE 中编辑了 .ts,保存,然后重新加载页面并测试了更改。现在我必须建造。但是,当调试会话在 VS IDE 中运行时,构建未启用。所以现在我必须做一个完整的往返:编辑 .ts -> 保存 -> 停止调试 -> 构建 -> 启动调试。再次,这是非常痛苦的。 结束编辑
我在我的项目设置中取消选中/保存/选中了 TypeScript Build 选项卡中的设置。
相应的<PropertyGroup> 已生成并保存到我的 .csproj 文件中。
(请注意,在不更改任何 TypeScript Build 设置的情况下,此 <PropertyGroup> 不存在(当使用先前使用 VS 2013 创建的现有项目时),并且 build 默认值与IDE UI 上的默认值,所以你被误导了。)
无论如何,在此更改/保存活动之后,我的 .csproj 文件与 IDE UI 同步:
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptRemoveComments>True</TypeScriptRemoveComments>
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
<TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
<TypeScriptModuleKind>None</TypeScriptModuleKind>
<TypeScriptOutFile />
<TypeScriptOutDir />
<TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
<TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
<TypeScriptSourceMap>True</TypeScriptSourceMap>
<TypeScriptMapRoot />
<TypeScriptSourceRoot />
</PropertyGroup>
正如它显示的那样,保存时编译肯定是启用的。 .js 文件仍然只在构建期间生成,而不是在保存 .ts 文件时生成。
顺便说一句:关于 TypeScript 编译是 VS 2015 实现中的一个 msbuild 任务,有趣的是这个 Compile on save 设置甚至可以工作......
更多诊断: 有趣的是,如果我删除整个属性组,那么它实际上会在保存时编译。 (UI 保持不变,.map 文件不会在保存时生成,仅在构建时生成。)
【问题讨论】:
-
我在我的打字稿项目中创建了一个输出 js 文件。如果我构建,它仍然会为每个 ts 文件创建一个 js 文件。如果我在保存时编译,它会正确输出到单个 js 文件。奇怪、错误、耗时且令人沮丧的体验。有时 ts 文件会乱序,如果我打开 _references.ts 并保存在该文件中,它会遵循引用顺序并且 js 输出再次正确。我还没有找到将多个 ts 文件编译为单个 js 文件的“正确”方法 - 如果有的话。
标签: visual-studio typescript visual-studio-2015