用 dts 签入 Visual Studio Code typings 文件夹有意义吗?

Does it make sense to check-in Visual Studio Code typings folder with dts?

使用 Visual Studio 代码。它建议导入类型定义并将它们下载到 /typings 文件夹中。

我需要签入此文件夹还是可以通过某种方式恢复它?

谢谢。

我发现签入 tsd.json 有助于设置新的开发人员,或者如果您需要在某处克隆存储库,甚至可以重新安装类型,因为如果您不这样做,tsd 将不知道要重新安装什么。

  1. tsd init(这会创建 tsd.json 文件)
  2. tsd install node --save(如果没有,这将创建 typings 文件夹并将节点类型添加到 tsd.json)
  3. 签入 tsd.json 文件并忽略 typings 文件夹(tsd 使用 json 重新创建您的 typings 文件夹)
  4. 告诉同事 tsd install 从 root 开始打字!

source: https://github.com/DefinitelyTyped/tsd#quick-start

如果类型定义文件 (.d.ts) 是内部的并且在任何中央 dts 存储库中不可用,例如 typings(正在替换 tsd),那么将它们添加到源代码管理是有意义的。

如果不是,规则是任何生成的或可检索的文件不应添加到源代码管理。 例如,可以使用 typings 工具检索类型定义文件 (.d.ts)。

如果您使用 NPM 管理依赖项和 build/delivery 管道,一个常见的做法是有一个 package.json 文件,您可以在其中添加依赖项和一些脚本。考虑以下 package.json

{
  "version": "1.0.0",
  "name": "iberodev",
  "description": "iberodev sample",
  "private": true,
  "license": "UNLICENSED",
  "devDependencies": {
    "live-server": "^0.9.2"
  },
  "dependencies": {
    "angular": "1.6.0",
    "systemjs": "^0.19.28",
    "typescript": "^1.8.10",
    "typings": "^1.3.2"
  },
  "scripts": {
    "postinstall": "typings install dt~jquery dt~angular dt~angular-animate dt~angular-material --global --save"
  }
}

上面有一个对 typings 的依赖(以及其他)。还有一个带有命令 typings install dt~jquery dt~angular dt~angular-animate dt~angular-material --global --save

的安装后脚本

当开发人员克隆存储库然后执行命令 npm install 时,所有指定的依赖项都将被下载,之后用于下载本地文件夹 typings/ 下的类型定义文件的 typings 命令将是已执行,因此没有必要将这些文件添加到源代码管理中,并且您的 .gitignore 应至少包含以下行:

**/typings/**
typings.json