使用 vscode 时是不是应该提交 es6 项目的类型文件夹?

Posted

技术标签:

【中文标题】使用 vscode 时是不是应该提交 es6 项目的类型文件夹?【英文标题】:Should you commit the typings folder for es6 projects when using vscode?使用 vscode 时是否应该提交 es6 项目的类型文件夹? 【发布时间】:2016-12-11 02:46:50 【问题描述】:

所以我在玩一些示例 es6 项目时一直在使用 Visual Studio Code (vscode)。

我的理解是,为了让智能感知与节点模块一起正常工作,您需要包含您正在处理的项目的类型 (Link here)。

我还理解的是,您可以拥有一个存储所有“类型定义”的 typings.json 文件,然后运行 ​​typings install 来检索所有类型。

这一切都是为了让智能感知在 vscode 中工作。我不确定你是否应该从版本控制中完全排除这个(typings 文件夹和typings.json)?

目前我认为编辑器不应该影响源代码结构。我很确定您应该排除 typings 文件夹。我不确定typings.json。它可能对 vscode 用户有用,但对 WebStorm/Atom/Sublime/Vim 用户很可能毫无意义?

【问题讨论】:

如果你不控制它(在同一个项目中),它可能不属于同一个 repo。与将依赖项提交到每个项目相比,您最好使用现场代理或工件服务器。 【参考方案1】:

typings 文件夹的内容可以通过运行typings install 轻松重新创建。如果你有任何类型的构建过程,比如 webpack、browserify、gulp 或类似的,那么你还需要有这些定义才能在你的持续集成系统中运行 typescript 编译器。

因此,您应该提交 typings.json 并添加一些 npm postinstall 脚本,以便在运行 npm install 时自动下载类型,以便能够以自动方式构建代码。

【讨论】:

这适用于基于 es6 的项目,不适用于基于 typescript 的项目。我认为这对打字稿项目很有意义 你到底是什么意思?自动化构建过程?当然,这对于打字稿项目是有意义的。我们一起使用 typescript 和 webpack,这是一个很好的匹配。甚至 Angular 2 现在也在这里提供了一个使用 typescript 和 webpack 的教程:angular.io/docs/ts/latest/guide/webpack.html。当您使用打字稿和打字时,您可能已经为您的项目配置了 npm,对吧?那么为什么不直接添加一个安装后脚本并删除 Typings 文件夹呢? 或者如果你使用 Gitlab/Travis YML 构建脚本,你只需在运行 tsc/webpack/gulp/whatever 之前添加一行来安装类型。

以上是关于使用 vscode 时是不是应该提交 es6 项目的类型文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

VScode:ES6 & Nodejs & webpack & babel

记一次在github上提交issue的经历

vscode如何增量推送代码到svn服务器

关于vscode git的一些体验

vscode文件提交项目到码云+将修改部分提交代码到仓库Push+Pull+克隆

git提交时冲突问题解决