使用 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