Stack OverflowとGitHub(nodeとnvmの両方)を検索して答えを見つけましたが、役に立ちませんでした。
一部のリポジトリ( GitHubのAtomテキストエディタ など)で、_.node-version
_ファイルに遭遇しました。これは、 _.Ruby-version
_任意のRubyバージョンマネージャで動作する標準ファイル。プロジェクトのRubyの現在のバージョンを正しく設定します。
しかし、そのドキュメントからわかる限り 、nvm(ノードバージョンマネージャー)は_.nvmrc
_ファイルのみを尊重します-より一般的な_.node-version
_ファイルについては何も言及していません。また、ノードのドキュメントには_.node-version
_についての言及はありません(バージョンマネージャーには付属していないので、そうなるとは思いません)。他のノードバージョンマネージャーが頻繁に使用されていることは知りません。
だから私の質問は、_.node-version
_とは何ですか?実際に使用しているツールは何ですか? _.nvmrc
_の単なるエイリアスですか、それともここで何か不足していますか?
(開示:維持 http://nvm.sh )
ノードで最も使用されるバージョンマネージャーは、間違いなく http://nvm.sh 、 https://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
にフックすることで自動バージョン切り替えを提供しようとします。
Direnv は両方をサポートします.node-version
および.nvmrc
ファイル。 Direnv は、Node.jsのプロジェクト固有のバージョンをロードするために使用するすべてです。
https://github.com/direnv/direnv/wiki/node#load-nodejs-version-from-a-node-version-or-nvmrc-file
fnmは.node-versionもサポートしています https://github.com/fisherman/fnm/
for f in .fnmrc .nvmrc .node-version
バージョンなしでnvm use
またはnvm install
を使用すると、nvmはファイルツリーをクロールして、.nvmrc
ファイル内のバージョンを探します。通常は、~/.nvmrc
のstable
に到達します。
.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も、インストールする追加のパッケージもありません。(私が見つけたとおりの)合理的なデフォルトです。