什么使用/尊重.node-version文件?

我已经search堆栈溢出和GitHub(节点和nvm)的答案,但无济于事。

在一些回购( 比如GitHub的Atom文本编辑器 )中,我遇到了一个.node-version文件。 这似乎与.ruby-version标准文件类似,它可以与任何Ruby版本pipe理器一起为项目正确设置Ruby的当前版本。

但据我所知 ,nvm(节点版本pipe理器)只考虑一个.nvmrc文件 – 它没有提到更通用的.node-version文件。 在节点的文档中没有提及.node-version (我不希望那里有,因为它不提供开箱即用的版本pipe理器)。 我不知道任何其他节点版本pipe理器在大量使用。

所以我的问题是,什么是.node-version ? 什么工具实际使用它? 它只是.nvmrc的别名,还是我在这里丢失了一些东西?

node.js至less有两个版本pipe理器,尊重.node-version文件:

  • avn – 自动节点版本切换
  • nodenv – 又一个版本pipe理器

可能还有一些其他的版本pipe理器,但我不知道它们。

我不知道Atom使用哪个版本pipe理器。 nodenv在github上有更多的星型,但是avn看起来更加成熟和更好维护,更不用说与n和nvm兼容了。

(披露:我维护http://nvm.sh

节点最常用的版本pipe理器无疑是http://nvm.sh,https : //www.npmjs.com/package/nave和https://www.npmjs.com/package/n

nvm用于修改单个shell会话以使用您想要的版本。 nave是用你想加载的版本启动子shell。 n用于切换单个系统范围版本的节点。

nvm使用.ruby-version这样的.nvmrc文件,它包含你通常与nvm use X或者nvm install X的version-ishstringX. nvm usenvm install自己nvm install将find.nvmrc文件,就像在打开一个新的shell时简单地find.nvmrc一样。

看起来nave支持.naverc文件,但我不太熟悉它的用法。

n似乎不支持任何这样的configuration,但是由于它是系统范围的,所以并没有太多的意义。


avn支持.node-version并尝试提供自动版本切换挂钩到cd ,后nvm决定是太侵入行为,包括。

Direnv支持.node-version.nvmrc文件。 Direnv是我用来加载项目特定版本的Node.js的所有东西。

https://github.com/direnv/direnv/wiki/node#load-nodejs-version-from-a-node-version-or-nvmrc-file

使用nvm use或者nvm install没有版本,nvm会抓取文件树,寻找.nvmrc文件中的一个版本,通常在~/.nvmrcstable登陆。

下面是一个粗略的6行git补丁程序,如果找不到.nvmrc文件,它将查找本地的.node-version文件:

 ~/.nvm/nvm.sh, ≈line 280 1 file changed, 8 insertions(+), 2 deletions(-) # Obtain nvm version from rc file nvm_rc_version() { local NVMRC_PATH NVMRC_PATH="$(nvm_find_nvmrc)" if [ ! -e "${NVMRC_PATH}" ]; then - nvm_err "No .nvmrc file found" - return 1 + local LOCAL_NODE_VERSION_DOTFILE_PATH + LOCAL_NODE_VERSION_DOTFILE_PATH="${PWD}/.node-version" + if [ -e "${LOCAL_NODE_VERSION_DOTFILE_PATH}" ]; then + NVMRC_PATH="${LOCAL_NODE_VERSION_DOTFILE_PATH}" + else + nvm_err "No .nvmrc file found" + return 1 + fi 

没有光盘挂钩,没有额外的软件包安装,只是(我发现是)一个合理的默认值。