如何查找项目支持的节点版本

时间:2017-03-15 09:38:18

标签: node.js npm nvm

除了试验和错误之外,还有一种方法可以检测我应该在存储库中使用哪个节点版本吗?

随着Web框架的快速发展,从6,12或24个月前开始回归项目已成为一种普遍需求。 在过去的几周里,我一直在这么做,我检测正确节点版本的过程已经变成:

git clone [REPO]
npm i
[build]
### if error
rm -r node_modules
nvm use 4, 5 or 6
npm i
[build]

我不禁觉得这里有一些非常基本的东西。 感谢您与我分享的任何智慧!

4 个答案:

答案 0 :(得分:0)

如果这些是您自己的存储库,那么您可以将节点版本存储在包json中供您参考。

"version": "1.0.0",
"engines": {
    "node": "7.x"
},
"description": "..."

这不会自动设置正确的版本,但它会为您提供一个可供查看的地方。

答案 1 :(得分:0)

正如其他答案所述,某些软件包在engines中有一个package.json字段。 npm如果用户尝试在程序包不支持的Node.js版本上安装软件包,则会警告用户。 engines字段如下所示:

{
  "engines": {
    "node": ">=4.0.0"
  }
}

更多信息:https://docs.npmjs.com/files/package.json#engines

此外,许多软件包都有一个CI,如TravisCI,设置为自动测试软件包。这些CI配置文件通常包含要测试的Node.js版本列表。通常,CI配置中的最低版本号是程序包支持的最低版本。

常见配置文件名为.travis.ymlappveyor.ymlcircle.yml等。

示例:

.travis.yml

language: node_js
node_js:
  - "4"
  - "5"
  - "6"
  - "7"

此配置意味着该软件包可能支持Node.js v4 +

答案 2 :(得分:0)

如果确实需要反复试验,可以结合使用npm的Check my website和npx来加快处理过程

npx node@4 myscript.js

甚至可以设置一个shell autofallback选项,

node@4 myscript.js

答案 3 :(得分:0)

该项目可能有一个包含其有效版本的 .nvmrc file