除了试验和错误之外,还有一种方法可以检测我应该在存储库中使用哪个节点版本吗?
随着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]
我不禁觉得这里有一些非常基本的东西。 感谢您与我分享的任何智慧!
答案 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.yml
,appveyor.yml
,circle.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。