让项目成员统一使用的Node.js版本的方法

“Node.js发展迅速,不断引入最新功能。
个人而言,对于类似gulpfile.js和简单脚本这样的小项目,风险较低,我希望能够尽快升级到es6的功能以便直接使用。
当然,在多人协同开发时,需要统一使用的Node.js版本。
可以考虑在README中列举清楚,但我还在思考是否存在更好的方法。”

如果使用Ruby或rbenv,可以在 .ruby-version 中指定,也可以在 Gemfile 中进行指定。

同样,对于nodejs,可以在 package.json 的 engines 属性中指定支持的引擎,我认为这样应该解决了问题。但是,似乎这只是在库被安装时使用的,项目自身在 npm install 或执行时似乎不会进行检查。

我想要使用check-engines来进行检查。这个库会查看package.json中的engines字段,看看当前执行的nodejs版本是否被支持。它还提供了命令行界面。会输出以下类似的消息。

错误:错误:节点版本(4.0.0)不满足指定范围(>=5.0.0)。

如果将这个与postinstall脚本结合起来,似乎可以在npm安装时进行检查。

最终,现在,当在运行npm install命令时,如果使用的nodejs版本不受支持,将会显示错误消息。

{
  "name": "LooksLikeTeenSpirit",
  "version": "1.0.0",
  "description": "...",
  "repository": "...",
  "main": "index.js",
  "engines": {
    "node": ">=4.0.0"
  },
  "scripts": {
    "postinstall": "node_modules/check-engines/bin/check-engines"
  },
  "author": "Kurt Cobein",
  "license": "ISC",
  "devDependencies": {
    "check-engines": "^1.2.0",
  }
}

首先,npm install是必不可少的步骤,所以没有问题。
通过这样做,我们成功地将项目中使用的node版本对齐了。

但是我感觉可能还存在其他更好的方法,只是我自己不知道而已,
如果你知道更好的方法,请告诉我。

广告
将在 10 秒后关闭
bannerAds