我搜索了Stack Overflow和GitHub(节点和nvm)的答案,但无济于事。
在某些回购(例如like GitHub's Atom text editor)中,我遇到了.node-version
文件。它似乎类似于.ruby-version
标准文件,它可以与任何Ruby版本管理器一起为项目正确设置当前版本的Ruby。
But as far as I can tell from its documentation,nvm(节点版本管理器)仅尊重.nvmrc
文件 - 它没有提及更一般的.node-version
文件。在节点的文档中没有提到.node-version
(我不希望有,因为它没有提供开箱即用的版本管理器)。我不知道有任何其他节点版本管理器在大量使用。
所以我的问题是,.node-version
是什么?实际使用哪些工具?它只是.nvmrc
的别名,还是我在这里遗漏了什么?
答案 0 :(得分:22)
(披露:我保持http://nvm.sh)
节点最常用的版本管理员毫无疑问是http://nvm.sh,https://www.npmjs.com/package/nave和https://www.npmjs.com/package/n。
nvm
用于修改单个shell会话以使用您想要的版本。
nave
用于启动要加载的版本的子shell。
n
用于切换单个系统范围的节点版本。
nvm
使用的.nvmrc
文件与.ruby-version
类似,包含您通常与nvm use X
或nvm install X
结合的版本字符串X. nvm use
或nvm install
本身会找到.nvmrc
文件,因为只需在打开新shell时获取nvm
。
看来nave
支持.naverc
文件,但我对它的用法不太熟悉。
n
似乎不支持任何此类配置,但由于它是系统范围的,因此这样做并没有多大意义。
avn
支持.node-version
并尝试在cd
决定过度侵入行为后,挂钩nvm
来提供自动版本切换。
答案 1 :(得分:21)
node.js至少有两个版本管理器,尊重.node-version
文件:
可能还有其他一些版本管理器,但我不知道它们。
我不知道Atom使用哪个特定的版本管理器。 nodenv
在github上有更多明星,但avn
看起来更成熟,更适合我,更不用说它与n和nvm的兼容性了。
答案 2 :(得分:5)
.node-version
是由各种工具单独读取的文件,用于指定目标节点版本。使用/尊重它的工具包括(按字母顺序):
我在此处记录了用法和一些受支持的功能:https://github.com/shadowspawn/node-version-usage
答案 3 :(得分:3)
答案 4 :(得分:2)
Direnv支持sendKeys("blabla@gmail.com");
和.node-version
个文件。我只使用Direnv来加载Node.js的项目特定版本。
https://github.com/direnv/direnv/wiki/node#load-nodejs-version-from-a-node-version-or-nvmrc-file
答案 5 :(得分:0)
在没有版本的情况下使用nvm use
或nvm install
,nvm会抓取文件树,查找.nvmrc
文件中的版本,通常会在stable
{{}}登陆1}}。
这是一个粗略的6行git补丁,如果找不到~/.nvmrc
文件,它将查找本地.node-version
文件:
.nvmrc
没有cd-hook,没有额外的软件包可以安装,只是(我发现的是)合理的默认值。
答案 6 :(得分:0)
fnm还支持.node-version https://github.com/fisherman/fnm/
for f in .fnmrc .nvmrc .node-version