webdevqa.jp.net

.node-versionファイルを使用/尊重するものは何ですか?

Stack OverflowとGitHub(nodeとnvmの両方)を検索して答えを見つけましたが、役に立ちませんでした。

一部のリポジトリ( GitHubのAtomテキストエディタ など)で、_.node-version_ファイルに遭遇しました。これは、 _.Ruby-version_任意のRubyバージョンマネージャで動作する標準ファイル。プロジェクトのRubyの現在のバージョンを正しく設定します。

しかし、そのドキュメントからわかる限り 、nvm(ノードバージョンマネージャー)は_.nvmrc_ファイルのみを尊重します-より一般的な_.node-version_ファイルについては何も言及していません。また、ノードのドキュメントには_.node-version_についての言及はありません(バージョンマネージャーには付属していないので、そうなるとは思いません)。他のノードバージョンマネージャーが頻繁に使用されていることは知りません。

だから私の質問は、_.node-version_とは何ですか?実際に使用しているツールは何ですか? _.nvmrc_の単なるエイリアスですか、それともここで何か不足していますか?

24
wisew

Node.jsには少なくとも2つのバージョンマネージャがあり、.node-versionファイル:

  • avn -自動Nodeバージョン切り替え
  • nodenv -さらに別のバージョンマネージャ

他のバージョンマネージャーがいくつかあるかもしれませんが、私はそれらを知りません。

特定のバージョンマネージャーがわからないAtomが使用します。nodenvはgithubでより多くの星を持っていますが、avnは私にとってはより成熟し、よりよく維持されているように見えます。 nnvm の両方との互換性について言及します。

25

(開示:維持 http://nvm.sh

ノードで最も使用されるバージョンマネージャーは、間違いなく http://nvm.shhttps://www.npmjs.com/package/nave 、および- https://www.npmjs.com/package/n

nvmは、必要なバージョンを使用するように個々のシェルセッションを変更するためのものです。 naveは、ロードしたいバージョンでサブシェルを起動するためのものです。 nは、システム全体の単一バージョンのノードを切り替えるためのものです。

nvm.nvmrcファイルを使用します。このファイルには.Ruby-versionと同様に、通常nvm use Xまたはnvm install Xと結合するバージョンっぽい文字列Xが含まれています。 nvm useまたはnvm installは、新しいシェルを開いたときに単にnvmを調達するのと同様に、.nvmrcファイルを検索します。

nave.navercファイルをサポートしているようですが、その使用法についてはあまり詳しくありません。

nはそのような構成をサポートしていないようですが、システム全体に対応しているため、実際にはそれほど意味がありません。


avn.node-versionをサポートし、cdに含めることができない侵襲的な動作であると判断した後、nvmにフックすることで自動バージョン切り替えを提供しようとします。

24
LJHarb

Direnv は両方をサポートします.node-versionおよび.nvmrcファイル。 Direnv は、Node.jsのプロジェクト固有のバージョンをロードするために使用するすべてです。

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

3
Wil Moore III

fnmは.node-versionもサポートしています https://github.com/fisherman/fnm/

for f in .fnmrc .nvmrc .node-version
1
aristidesfl

asdf with asdf-nodejs サポート.node-version with

legacy_version_file = yes

~/.asdfrcに追加されました

0
Evmorov

バージョンなしでnvm useまたはnvm installを使用すると、nvmはファイルツリーをクロールして、.nvmrcファイル内のバージョンを探します。通常は、~/.nvmrcstableに到達します。

.node-versionファイルが見つからない場合にローカルの.nvmrcファイルを探す大まかな6行のgitパッチを次に示します。

~/.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

Cd-hookingも、インストールする追加のパッケージもありません。(私が見つけたとおりの)合理的なデフォルトです。

0
Nodeski