【问题标题】:TypeScript Parenthesis FormattingTypeScript 括号格式
【发布时间】:2016-07-05 17:02:52
【问题描述】:

最近我的团队注意到,在 VS 2013 下编译 TypeScript 文件的输出与在 VS 2015 下编译的输出不同,因为每个函数末尾的自执行函数括号样式略有不同。

区别如下:

这很烦人,因为我们必须不断地覆盖彼此的更改,否则每次构建时都必须将更改还原到所有 TypeScript 编译的 .js 和 .js.map 文件。

一旦我们的整个团队更新到 VS 2015,问题就消失了,除了我们团队中的一个人,他每次在他的机器上构建时仍然看到这些细微的变化。我们都在运行安装了 TypeScript 1.8.6.0 的 Visual Studio 2015。

我们浏览了 Project Properties -> TypeScript Build 下的选项,以验证所有设置是否相同,并且它们是相同的。我们还检查了两台机器之间的工具 -> 选项 -> 文本编辑器 -> TypeScript 中的所有配置是否相同。

.csproj 文件设置为<TypeScriptToolsVersion>1.8</TypeScriptToolsVersion>,显然两台机器之间也是一样的。

我们能想到的唯一区别是,机器编译方式不同的人导出了他的 VS 2013 设置并将它们导入 VS 2015,而我们其他人只是从 2015 年开始,尽管我们已经验证了所有相关的设置是一样的。

是否有一些隐藏的设置或配置文件可能导致 TypeScript 编译器的行为与我们缺少的不同?

【问题讨论】:

  • 我认为建议的模式是不签入已编译的文件...

标签: visual-studio-2013 typescript visual-studio-2015 typescript1.8


【解决方案1】:

如果您使用的是 TypeScript,则无需签入 .js.js.map 文件。您也不想签入您通过typingstsd 安装的任何类型。

一般来说,您希望签入最少数量的文件,以允许某人运行您的应用程序。您真的不应该签入自动生成的文件。

【讨论】:

  • 没那么简单,应该和是否签入node_modules是一样的决定。有一些文章有利有弊。主要缺点是目前没有打字版本,并且您希望 js 文件的版本保持稳定。而且你总是希望能够使用它们,即使有人把包弄乱了,甚至在 npm 宕机的情况下也是如此
  • 在我们的例子中,我不确定构建服务器是否设置为编译 TypeScript 文件。另外,它们必须包含在解决方案中,否则它们不会被发布,对吗?解决方案中包含文件但您没有签入 SCM 存储库似乎很奇怪。无论哪种方式,我都想解决根本原因,而不仅仅是解决它。
  • @SlavaShp。我相信你可以为打字指定提交版本,但我同意它不像我所说的那样非黑即白。布拉德,对于您的具体问题,我无法回答您。根据我的经验,我通常会设置构建服务器以尽可能地模仿我在本地的构建过程。这意味着编译 TS 文件。
  • @wjohnsto 是的,您可以指定版本,但就我目前所见,通常没有人这样做。难得一见
猜你喜欢
  • 2012-09-27
  • 1970-01-01
  • 2022-12-23
  • 2016-12-31
  • 1970-01-01
  • 2020-11-19
  • 2019-06-11
  • 2013-11-04
  • 1970-01-01
相关资源
最近更新 更多