首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Visual Studio 2015在更改单个文件时编译所有typescript文件

Visual Studio 2015在更改单个文件时编译所有typescript文件
EN

Stack Overflow用户
提问于 2015-09-04 20:48:56
回答 4查看 4.8K关注 0票数 19

我正在使用带有Typescript 1.5.4和Resharper 9的Visual Studio 2015

这是一个错误场景:

  • I

180 typescript files

  • I change single .ts File.
  • VS显示消息"Generation of XXX.ts File. complete. Remaining files compiling"
  • after my ALL .ts files
  • to .js
  • 2在这些.js文件中发生了更改:格式略有不同,对.js.map的引用被删除了

<代码>H113当我构建整个项目时,将再次生成.js文件,但使用原始格式并带有到.js.map的链接<代码>H214<代码>F215

这很烦人,因为它在Git中产生了太多的噪音,而且它阻止了我直接在浏览器中调试typescript文件。(由于丢失了.js.map文件)

当然,所需的行为是在保存时编译唯一更改过的.ts文件。该怎么做呢?

似乎R#与此无关,因为在禁用R#的情况下,这种情况仍会继续发生。

我当前的项目设置:

我已经尝试更新到Typescript版本1.6。PATH变量指向C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.4\,因此我将其更新为指向1.6

因此,当我现在输入tsc -v时,它会显示message TS6029: Version 1.6.2

但由于历史原因(我从事的项目大约有2年历史),我不得不在VisualStudio中使用1.4版本。因此在.csproj中使用的是<TypeScriptToolsVersion>1.4</TypeScriptToolsVersion>

在此更改之后,compile on safe完全停止工作。

现在我必须重新构建整个解决方案:

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-11-19 06:58:44

Visual Studio似乎不能正确支持监视模式(即增量编译):

需要说明的是,如果您使用的是node.js/io.js,那么--watch确实可以在Windows上运行,但是随VS一起分发的tsc.exe程序不支持它;无论如何,您仍然可以在保存时编译以实现类似的功能。

https://github.com/Microsoft/TypeScript/issues/2375#issuecomment-100812347

我不确定为什么这里被关闭了。支持--监视我们的tsc.exe主机是可能的,也是可取的。现在的限制因素是我们的tsc.exe主机是一个丑陋的C++,它使用了一些古老的COM接口用于查克拉,我们没有花太多的努力。我们的选择是:...

https://github.com/Microsoft/TypeScript/issues/2375#issuecomment-100949019

作为一种变通办法,您可以运行

代码语言:javascript
复制
tsc --watch

tsconfig.json所在的文件夹中?

编辑: https://github.com/Microsoft/TypeScript/issues/5638 -当单个文件发生更改时,Visual Studio2015会编译所有typescript文件

从VS2015RTM开始,每次保存文件时编译,我们需要在项目中生成所有文件以确保一致的输出。当以不同的顺序保存文件时,我们遇到了许多与输出不一致相关的问题。构建所有文件是我们在给定所有语言构造以及它们如何跨文件交互的情况下确保正确和一致输出的唯一方法(例如,名称空间/内部模块可以增加,这会影响发出的代码的形状,而且常量enms作为常量内联,等等)。

票数 6
EN

Stack Overflow用户

发布于 2015-11-14 16:54:09

在"ECMAScript版本“中尝试"ECMAScript 5”而不是"ECMAScript 3“

票数 1
EN

Stack Overflow用户

发布于 2015-12-01 23:45:35

我也遇到过类似的问题,但由于我们是自己处理TS编译的,所以我希望完全避免自动编译……

修复方法是在项目中强制将false标记为TypeScriptCompileOnSaveEnabled

代码语言:javascript
复制
<PropertyGroup>
    <TypeScriptCompileOnSaveEnabled>false</TypeScriptCompileOnSaveEnabled>
</PropertyGroup>

在我的例子中,这有效地阻止了VS2015在保存时自动编译.ts文件,而不是VS每次都介入并扰乱输出……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32398515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档