让项目成员统一使用的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版本对齐了。
但是我感觉可能还存在其他更好的方法,只是我自己不知道而已,
如果你知道更好的方法,请告诉我。