node.jsのサイトからではなくnvmから入手すると良いとのこと。
ローカルにインストールされてしまうのでアクセス権を得られないことがエラーの原因
solanadevの仮想環境にnvmを入れて、
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvmでnodeをインストールして、
nvm install 17.2.0
それでnpmが使えるようになった。
スクリプトのインストールと更新
nvmをインストールまたは更新するには、インストールスクリプトを実行する必要があります。これを行うには、スクリプトを手動でダウンロードして実行するか、次のcURLまたはWgetコマンドを使用します。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
上記のコマンドのいずれかを実行すると、スクリプトがダウンロードされて実行されます。スクリプトは、NVMにリポジトリを複製し~/.nvm
、正しいプロファイルファイル(以下にスニペットからソース行を追加しようと~/.bash_profile
、~/.zshrc
、~/.profile
、または~/.bashrc
)。
エクスポートNVM_DIR = " $( [ -z " $ {XDG_CONFIG_HOME-} " ] && のprintf%S " $ {HOME} /.nvm " || printfの%S " $ {XDG_CONFIG_HOME} / NVM ") "
[ -s " $ NVM_DIR /nvm.sh " ] && \。 " $ NVM_DIR /nvm.sh " #この負荷NVM
その他の注意事項
-
環境変数
$XDG_CONFIG_HOME
が存在する場合は、nvm
そこにファイルが配置されます。 -
--no-use
上記のスクリプトの最後に追加して(…nvm.sh --no-use
)、nvm
手動use
で使用するまで使用を延期できます。 -
あなたは使用してインストールソース、ディレクトリ、プロファイル、およびバージョンをカスタマイズすることができ
NVM_SOURCE
、NVM_DIR
、PROFILE
、およびNODE_VERSION
変数を。例:curl ... | NVM_DIR="path/to/nvm"
。のNVM_DIR
末尾にスラッシュが含まれていないことを確認してください。 -
インストーラが使用することができ
git
、curl
またはwget
ダウンロードしてnvm
利用できる方、。
Linuxでのトラブルシューティング
Linuxでは、インストールスクリプトを実行した後、入力後にnvm: command not found
ターミナルからフィードバックが表示されない場合はcommand -v nvm
、現在のターミナルを閉じて新しいターミナルを開き、確認を再試行してください。または、コマンドラインでさまざまなシェルに対して次のコマンドを実行することもできます。
bash:source ~/.bashrc
zsh:source ~/.zshrc
ksh:. ~/.profile
これらはnvm
コマンドを取得する必要があります。
macOSでのトラブルシューティング
OS X 10.9以降/usr/bin/git
、Xcodeコマンドラインツールによって事前設定されています。つまり、Gitがインストールされているかどうかを正しく検出できません。インストールスクリプトを実行する前に、Xcodeコマンドラインツールを手動でインストールする必要があります。そうしないと、失敗します。(#1782を参照)
nvm: command not found
インストールスクリプトを実行した後に取得した場合は、次のいずれかが原因である可能性があります。
-
macOS 10.15以降、デフォルトのシェルはで
zsh
あり、nvmは.zshrc
更新を探しますが、デフォルトでは何もインストールされていません。で作成しtouch ~/.zshrc
、インストールスクリプトを再度実行します。 -
以前のデフォルトシェルであるbashを使用する場合
.bash_profile
、コマンドが設定されているファイルがシステムにない可能性があります。で作成しtouch ~/.bash_profile
、インストールスクリプトを再度実行します。次に、を実行source ~/.bash_profile
してnvm
コマンドを取得します。 -
以前にを使用しましたが
bash
、zsh
インストールしました。これらの行を手動で追加し~/.zshrc
て実行する必要があります. ~/.zshrc
。 -
ターミナルインスタンスを再起動するか、を実行する必要がある場合があります
. ~/.nvm/nvm.sh
。ターミナルを再起動するか、新しいタブ/ウィンドウを開くか、sourceコマンドを実行すると、コマンドと新しい構成がロードされます。 -
上記が役に立たなかった場合は、ターミナルインスタンスを再起動する必要があるかもしれません。ターミナルで新しいタブ/ウィンドウを開いて、再試行してください。
上記で問題が解決しない場合は、次のことを試してください。
-
bashを使用している場合は、
.bash_profile
(または~/.profile
)が~/.bashrc
適切にソースを提供していない可能性があります。これを追加source ~/<your_profile_file>
するか、以下の次の手順に従って修正できます。 -
追加してみてくださいインストールセクションからスニペットを正しいNVMディレクトリと負荷があなたの通常のプロファイル(に、NVM見つけ、
~/.bash_profile
、~/.zshrc
、~/.profile
、または~/.bashrc
)。
注M1チップを搭載したMacの場合、ノードはv16.0.0以降でarm64 archdarwinパッケージの提供を開始しました。以前のバージョンでは、利用可能なdarwin_x64パッケージのみがあり、darwin_arm64はありませんでした。を使用してノードをインストールする際に問題が発生した場合はnvm
、v16以降に更新することをお勧めします。
Ansible
次のタスクを使用できます。
-名前:nvm
シェル:>
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
args:
creates:" {{ansible_env.HOME}} /。nvm / nvm.sh "
インストールの確認
nvmがインストールされていることを確認するには、次の手順を実行します。
コマンド-vnvm
nvm
インストールが成功した場合に出力されます。は実行可能なバイナリではなく、ソースシェル関数であるため、機能しwhich nvm
ないことに注意してくださいnvm
。
注: Linuxでは、インストールスクリプトを実行した後、入力後にnvm: command not found
ターミナルからフィードバックが表示されない場合はcommand -v nvm
、現在のターミナルを閉じて新しいターミナルを開き、確認を再試行してください。
重要な注意事項
事前にパッケージ化されたバイナリが利用できないシステムを実行している場合、つまりソースコードからnodejsまたはio.jsをインストールする場合は、システムにC ++コンパイラがインストールされていることを確認する必要があります。OS Xの場合、Xcodeが機能し、Debian / UbuntuベースのGNU / Linuxの場合、build-essential
およびlibssl-dev
パッケージが機能します。
注: nvm
場合によってはWindowsもサポートします。WSLのバージョンに応じて、WSL(Windows Subsystem for Linux)を介して動作するはずです。また、GitBash(MSYS)またはCygwinでも機能するはずです。それ以外の場合、Windowsの場合、サポートも開発もされていないいくつかの選択肢があります。
注: Fishもnvm
サポートしていません(#303を参照)。私たちによってサポートも開発もされていない代替案が存在します:
- 低音を使用すると、魚の殻でBash用に作成されたユーティリティを使用できます
- fast-nvm-fishはバージョン番号(エイリアスではない)でのみ機能しますが、シェルの起動を大幅に遅くすることはありません
- plugin- Oh My Fish用のnvmプラグイン。これにより、nvmとその補完がfishshellで利用可能になります。
- FNM –漁師の魚のためのベースのバージョン管理
- fish-nvm-魚のnvmの周りのラッパーで、実際に使用されるまでnvmのソーシングを遅らせます。
注: FreeBSDにはまだ公式のビルド済みバイナリがなく、ソースからビルドするにはパッチが必要な場合があるため、FreeBSDにはまだいくつかの問題があります。発行チケットを参照してください。
注: OS Xでは、Xcodeがインストールされておらず、最大4.3GBのファイルをダウンロードしたくない場合は、をインストールできますCommand Line Tools
。その方法については、このブログ投稿を確認してください。
注: OS Xで、「システム」ノードがインストールされている/インストールされていて、モジュールをグローバルにインストールする場合は、次の点に注意してください。
- を使用
nvm
する場合は、を使用しsudo
てモジュールをグローバルにインストールする必要はありませんnpm -g
。そのためsudo npm install -g grunt
、を実行する代わりに、を実行してください。npm install -g grunt
~/.npmrc
ファイルがある場合は、prefix
設定が含まれていないことを確認してください(と互換性がありませんnvm
)- 以前の「システム」ノードのインストールを維持することはできますが(すべきではありませんか?)
nvm
、ユーザーアカウント(nvmのインストールに使用されたアカウント)でのみ使用できます。他のユーザーが/usr/local/lib/node_modules/*
VSを使用しているため、これによりバージョンの不一致が発生する可能性があります。~/.nvm/versions/node/vX.X.X/lib/node_modules/*
自作のインストールはサポートされていません。自作インストールnvm
で問題が発生した場合は、問題をbrew uninstall
提出する前に、それを実行し、以下の手順を使用してインストールしてください。
注:使用しているzsh
場合はnvm
、zshプラグインとして簡単にインストールできます。インストールzsh-nvm
して実行nvm upgrade
し、アップグレードします。
注: v1.7より前のGitバージョンnvm
では、httpsプロトコルを介してGitHubからソースを複製する問題が発生する可能性があります。また、v1.6より前のgitの動作も異なり、v1.17.10より前のgitはタグを複製できないため、最低限必要なものがあります。 gitバージョンはv1.7.10です。ここで説明した問題に関心がある場合は、GitHubのHTTPSクローン作成エラーの記事を参照してください。
Gitインストール
git
インストールしている場合(git v1.7.10 +が必要):
- このリポジトリをユーザープロファイルのルートに複製します
cd ~/
どこからでもgit clone https://github.com/nvm-sh/nvm.git .nvm
cd ~/.nvm
と最新バージョンをチェックしてくださいgit checkout v0.39.0
nvm
シェルから調達してアクティブ化します。. ./nvm.sh
今すぐあなたにこれらの行を追加し~/.bashrc
、~/.profile
または~/.zshrc
それは自動的にログイン時にソースの持っているファイル:(あなたが上記のファイルの複数に追加する必要があります)
export NVM_DIR = " $ HOME /.nvm "
[ -s " $ NVM_DIR /nvm.sh " ] && \。 " $ NVM_DIR /nvm.sh " #この負荷がNVMは
[ -s " $ NVM_DIR / bash_completion " ] && \。 " $ NVM_DIR / bash_completion " #これはnvmbash_completionをロードします
手動インストール
完全に手動でインストールするには、次の行を実行して、最初にnvm
リポジトリのクローンを作成して$HOME/.nvm
から、ロードしますnvm
。
export NVM_DIR = " $ HOME /.nvm " &&(
git clone https://github.com/nvm-sh/nvm.git " $ NVM_DIR "
cd " $ NVM_DIR "
git checkout ` git describe --abbrev = 0 --tags --match " v [0-9] * " $( git rev-list --tags --max-count = 1 ) `
)&& \。 " $ NVM_DIR /nvm.sh "
今すぐあなたにこれらの行を追加し~/.bashrc
、~/.profile
または~/.zshrc
それは自動的にログイン時にソースの持っているファイル:(あなたが上記のファイルの複数に追加する必要があります)
export NVM_DIR = " $ HOME /.nvm "
[ -s " $ NVM_DIR /nvm.sh " ] && \。 " $ NVM_DIR /nvm.sh " #この負荷がNVMは
[ -s " $ NVM_DIR / bash_completion " ] && \。 " $ NVM_DIR / bash_completion " #これはnvmbash_completionをロードします
手動アップグレード
手動アップグレードの場合git
(git v1.7.10 +が必要):
- に変更します
$NVM_DIR
- 最新の変更をプルダウンします
- 最新バージョンをチェックしてください
- 新しいバージョンをアクティブ化する
(
cd " $ NVM_DIR "
git fetch --tags origin
git checkout ` git describe --abbrev = 0 --tags --match " v [0-9] * " $( git rev-list --tags --max-count = 1 ) `
)&& \。 " $ NVM_DIR /nvm.sh "
使用法
nodeの最新リリースをダウンロード、コンパイル、およびインストールするには、次のようにします。
nvm install node # "node"は最新バージョンのエイリアスです
特定のバージョンのノードをインストールするには:
nvm install 14.7.0 #または16.3.0、12.22.1など
インストールされた最初のバージョンがデフォルトになります。新しいシェルは、デフォルトバージョンのノード(例nvm alias default
)で開始されます。
以下を使用して、利用可能なバージョンを一覧表示できますls-remote
。
nvmls-リモート
そして、新しいシェルでは、インストールされているバージョンを使用します。
nvm使用ノード
または、実行することもできます。
nvm run node --version
または、目的のバージョンのノードを使用して、サブシェルで任意のコマンドを実行できます。
nvm exec 4.2 node --version
また、実行可能ファイルがインストールされた場所へのパスを取得することもできます。
12.22のnvm
「14.7」または「16.3」または「12.22.1」のようなバージョンポインタの代わりに、あなたが次のような特別なデフォルトのエイリアスを使用することができnvm install
、nvm use
、nvm run
、nvm exec
、nvm which
、など:
node
:これは最新バージョンのをインストールしますnode
iojs
:これは最新バージョンのをインストールしますio.js
stable
:このエイリアスは非推奨であり、実際にはnode
v0.12
それ以前にのみ適用されます。現在、これはのエイリアスですnode
。unstable
:このエイリアスはnode
v0.11
-1.0以降の最後の「不安定な」ノードリリースを指します。すべてのノードバージョンは安定しています。(SemVerでは、バージョンは安定性ではなく破損を伝えます)。
長期サポート
ノードには長期サポート(LTS)のスケジュールがあり.nvmrc
ます。たとえばlts/*
、最新のLTSの表記、およびlts/argon
「アルゴン」行からのLTSリリースの表記を使用して、エイリアスおよびファイルでLTSバージョンを参照できます。さらに、次のコマンドはLTS引数をサポートします。
nvm install --lts
/nvm install --lts=argon
/nvm install 'lts/*'
/nvm install lts/argon
nvm uninstall --lts
/nvm uninstall --lts=argon
/nvm uninstall 'lts/*'
/nvm uninstall lts/argon
nvm use --lts
/nvm use --lts=argon
/nvm use 'lts/*'
/nvm use lts/argon
nvm exec --lts
/nvm exec --lts=argon
/nvm exec 'lts/*'
/nvm exec lts/argon
nvm run --lts
/nvm run --lts=argon
/nvm run 'lts/*'
/nvm run lts/argon
nvm ls-remote --lts
/nvm ls-remote --lts=argon
nvm ls-remote 'lts/*'
/nvm ls-remote lts/argon
nvm version-remote --lts
/nvm version-remote --lts=argon
/nvm version-remote 'lts/*'
/nvm version-remote lts/argon
のローカルコピーがhttps://nodejs.orgにnvm
接続するたびに、使用可能なすべてのLTS回線に適切なローカルエイリアスが再作成されます。これらのエイリアス(の下に保存されている)は、によって管理されており、これらのファイルを変更、削除、または作成しないでください。変更が取り消されることを期待し、これらのファイルをいじると、サポートされない可能性のあるバグが発生することを期待してください。$NVM_DIR/alias/lts
nvm
ノードの最新のLTSバージョンを取得し、既存のインストール済みパッケージを移行するには、次を使用します。
NVMインストール' LTS / * 'から--reinstall-のパッケージを-=現在の
インストール中のグローバルパッケージの移行
新しいバージョンのNode.jsをインストールし、npmパッケージを以前のバージョンから移行する場合:
nvmインストールノード--reinstall-packages-from = node
これは、最初に「nvm version node」を使用して、パッケージの移行元の現在のバージョンを識別します。次に、リモートサーバーからインストールする新しいバージョンを解決してインストールします。最後に、「nvmreinstall-packages」を実行して、以前のバージョンのNodeから新しいバージョンにnpmパッケージを再インストールします。
次のように、ノードの特定のバージョンからnpmパッケージをインストールして移行することもできます。
nvm install 6 --reinstall-packages-from = 5
nvm install v4.2 --reinstall-packages-from = iojs
パッケージを明示的に再インストールしてもnpmバージョンは更新されないことに注意してください。これは、npmが新しいノードバージョンの壊れたバージョンに誤ってアップグレードされないようにするためです。
npmを同時に更新するには--latest-npm
、次のようにフラグを追加します。
NVMインストール' LTS / * ' =デフォルト--latest-NPMから--reinstall-のパッケージを、
または、いつでも次のコマンドを実行して、現在のノードバージョンでサポートされている最新のnpmバージョンを取得できます。
nvm install-latest-npm
すでに「NPMのNode.jsをサポートしていません」の効果にエラーを得ている場合、あなたは(前のノードのバージョンに(1)元に戻す必要がありますnvm ls
&nvm use <your latest _working_ version from the ls>
、(2)(新しく作成されたノードのバージョンを削除しますnvm uninstall <your _broken_ version of node from the ls>
) 、次に(3)フラグを使用nvm install
して再実行します--latest-npm
。
インストール中のファイルからのデフォルトのグローバルパッケージ
新しいバージョンをインストールするたびにインストールするデフォルトパッケージのリストがある場合は、それもサポートしています$NVM_DIR/default-packages
。パッケージ名を1行に1つずつファイルに追加するだけです。コマンドラインで、npmがパッケージ引数として受け入れるものなら何でも追加できます。
# $ NVM_DIR / default-パッケージ
rimraf
object-inspect@1.0.2
stevemao /左パッド
io.js
nvm install iojs
新しいバージョンのio.jsをインストールし、npmパッケージを以前のバージョンから移行する場合:
nvm install iojs --reinstall-packages-from = iojs
ノード内のnpmパッケージの移行について説明したのと同じガイドラインがio.jsに適用されます。
ノードのシステムバージョン
システムにインストールされたバージョンのノードを使用する場合は、特別なデフォルトのエイリアス「system」を使用できます。
nvm使用システム
nvm run system --version
バージョンの一覧表示
インストールされているバージョンを確認する場合:
nvm ls
インストールできるバージョンを確認したい場合:
nvmls-リモート
カスタムカラーの設定
バージョンとエイリアスの情報を表示するために使用される5つの色を設定できます。これらの色はデフォルトの色を置き換えます。初期色は次のとおりです。gbyre
カラーコード:
r/R = red / bold red
g/G = green / bold green
b/B = blue / bold blue
c/C = cyan / bold cyan
m/M = magenta / bold magenta
y/Y = yellow / bold yellow
k/K = black / bold black
e/W = light grey / white
nvm set-colors rgBcm
永続的なカスタムカラー
シェルを終了した後もカスタムカラーを保持する場合は、シェルプロファイルでNVM_COLORS変数をエクスポートします。たとえば、シアン、マゼンタ、グリーン、ボールドレッド、ボールドイエローを使用する場合は、次の行を追加します。
エクスポートNVM_COLORS = ' cmgRY '
カラー出力の抑制
nvm help (or -h or --help)
、nvm ls
、nvm ls-remote
およびnvm alias
通常色付き出力を生成します。--no-colors
オプションを使用して(または環境変数を設定することにより)色を無効にできますTERM=dumb
。
nvm ls--no-colors
nvmヘルプ--no-colors
TERM = dumb nvm ls
パスの復元
PATHを復元するには、次の手順を無効にします。
nvmを非アクティブ化
デフォルトのノードバージョンを設定する
新しいシェルで使用されるデフォルトのノードバージョンを設定するには、エイリアス「default」を使用します。
nvmエイリアスのデフォルトノード
ノードバイナリのミラーを使用する
ノードバイナリのミラーを使用するには、次のように設定し$NVM_NODEJS_ORG_MIRROR
ます。
NVM_NODEJS_ORG_MIRROR = https://nodejs.org/distをエクスポートします
nvmインストールノード
NVM_NODEJS_ORG_MIRROR = https://nodejs.org/dist nvm install 4.2
io.jsバイナリのミラーを使用するには、次のように設定し$NVM_IOJS_ORG_MIRROR
ます。
NVM_IOJS_ORG_MIRROR = https://iojs.org/distをエクスポートします
nvm install iojs-v1.0.3
NVM_IOJS_ORG_MIRROR = https://iojs.org/dist nvm install iojs-v1.0.3
nvm use
デフォルトでは、「現在の」シンボリックリンクは作成されません。$NVM_SYMLINK_CURRENT
この動作を有効にするには、「true」に設定します。これは、IDEで役立つ場合があります。nvm
この環境変数を有効にして複数のシェルタブで使用すると、競合状態が発生する可能性があることに注意してください。
.nvmrc
プロジェクトのルートディレクトリ(または任意の親ディレクトリ)に.nvmrc
、ノードのバージョン番号(またはnvm
理解できるその他の文字列。詳細nvm --help
を参照)を含むファイルを作成できます。その後、nvm use
、nvm install
、nvm exec
、nvm run
、及びnvm which
で指定されたバージョンを使用します.nvmrc
バージョンは、コマンドラインで供給されていない場合は、ファイルを。
たとえば、nvmをデフォルトで最新の5.9リリース、最新のLTSバージョン、または現在のディレクトリの最新のノードバージョンにするには、次のようにします。
$ echo " 5.9 " > .nvmrc
$ echo " lts / * " > .nvmrc #デフォルトで最新のLTSバージョンに設定
$ echo " node " > .nvmrc #デフォルトで最新バージョンに設定
[注:これらの例は、POSIX準拠のシェルバージョンを想定していecho
ます。Windowscmd
開発環境を使用している場合、たとえば.nvmrc
ファイルがリモートLinuxデプロイメントの構成に使用されている場合は、"
がコピーされて無効なファイルになることに注意してください。それらを削除します。]
次に、nvmを実行すると:
$ nvmの使用
見出さ' /path/to/project/.nvmrc 'バージョンと< 5。9>
次にノードv5.9.1(NPM v3.7.3)を用い
nvm use
et。al。.nvmrc
ファイルを探して現在のディレクトリから上向きにディレクトリ構造をトラバースします。言い換えれば、実行中などnvm use
。al。が付いているディレクトリのサブディレクトリでは.nvmrc
、それ.nvmrc
が使用されます。
.nvmrc
ファイルの内容は、(で説明されているように)後に改行が続く必要があります。末尾のスペースは使用できません。末尾の改行が必要です。<version>
nvm --help
より深いシェル統合
を使用avn
してシェルに深く統合し、nvm
ディレクトリを変更するときに自動的に呼び出すことができます。avn
されていないでサポートされているnvm
メンテナ。チームに問題を報告してavn
ください。
より軽量なソリューションを好む場合は、以下のレシピがnvm
ユーザーによって提供されています。それらはメンテナによってサポートされていませんnvm
。ただし、他の例についてはプルリクエストを受け付けています。
bash
nvm use
自動的に呼び出す あなたの最後に以下を入れてください$HOME/.bashrc
:
cdnvm(){
コマンド cd " $ @ " ;
nvm_path = $( nvm_find_up .nvmrc | tr -d ' \ n ')
# .nvmrcファイルがない場合は、デフォルトのnvmバージョンを使用します
if [[! $ nvm_path = * [^ [:space:]] * ]] ; それから
default_versionを宣言します;
default_version = $( nvm version default ) ;
#デフォルトバージョンがない場合は、 `node`に設定します
#これは、マシン上の最新バージョンを使用します
if [[ $ default_version == " N / A " ]] ; 次に、
nvmエイリアスのデフォルトノード。
default_version = $( nvm version default ) ;
fi
#現在のバージョンがデフォルトバージョンでない場合は、デフォルトバージョンを使用するように設定します
if [[ $( nvm current ) != " $ default_version " ]] ; 次に、
nvmはデフォルトを使用します;
fi
elif [[ -s $ nvm_path /.nvmrc && -r $ nvm_path /.nvmrc]] ; 次に、
nvm_versionを宣言します
nvm_version = $(< " $ nvm_path " /.nvmrc )
宣言locally_resolved_nvm_version
# `nvm ls`はローカルで利用可能なすべてのバージョンをチェックします
#複数の一致するバージョンがある場合は、最新のものを取得します
# `-> `と` * `の文字とスペースを削除します
# ` locally_resolved_nvm_version`は `N / Aになります`ローカルバージョンが見つからない場合
locally_resolved_nvm_version = $( nvm ls --no-colors " $ nvm_version " | tail -1 | tr -d ' \-> * ' | tr -d ' [:space:] ')
#まだインストールされていない場合は、インストールします
# `nvm install`は、新しくインストールされたバージョンを暗黙的に使用します
if [[ " $ locally_resolved_nvm_version " == " N / A " ]] ; 次に、
nvm install " $ nvm_version " ;
elif [[ $( nvm current ) != " $ locally_resolved_nvm_version " ]] ; 次に、
nvmは" $ nvm_version "を使用します;
fi
fi
}
エイリアスcd = ' cdnvm '
cd " $ PWD "
このエイリアスは、.nvmrc
ファイルを検出するために、現在のディレクトリから「上」を検索します。見つかった場合は、そのバージョンに切り替わります。そうでない場合は、デフォルトバージョンが使用されます。
zsh
nvm use
あるディレクトリで自動的に呼び出す.nvmrc
ファイルのこれをに入れて、nvmに次のノードを指示する文字列を含むファイルを含むディレクトリに入るたびに自動的$HOME/.zshrc
に呼び出しnvm use
ます 。.nvmrc
use
# NVM初期化した後にこれを置きます!
autoload -U add-zsh-hook
load-nvmrc(){
local node_version = " $( nvm version ) "
local nvmrc_path = " $( nvm_find_nvmrc ) "
if [ -n " $ nvmrc_path " ] ; 次に、
ローカルnvmrc_node_version = $( nvm version " $( cat " $ {nvmrc_path} ") ")
if [ " $ nvmrc_node_version " = " N / A " ] ; それから
nvmインストール
elif [ " $ nvmrc_node_version " != " $ node_version " ] ; それから
nvmの使用
fi
elif [ " $ node_version " != " $( nvm version default ) " ] ; 次に、
「 nvmのデフォルトバージョンに戻す」とエコーし ます。
nvmはデフォルトを使用します
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc
魚
nvm use
あるディレクトリで自動的に呼び出す.nvmrc
ファイルのこれには、低音がインストールされている必要があります。
#〜/ .config / fish / features / nvm.fish
function nvm
低音ソース〜/ .nvm / nvm。sh --no-use ' ; ' nvm $ argv
end
#〜/ .config / fish / features / nvm_find_nvmrc.fish
function nvm_find_nvmrc
低音ソース〜/ .nvm / nvm。sh --no-use ' ; ' nvm_find_nvmrc
end
#〜/ .config / fish / features / load_nvm.fish
function load_nvm --on-variable = " PWD "
set -l default_node_version(nvm version default)
set -l node_version(nvm version)
set -l nvmrc_path(nvm_find_nvmrc)
if test -n " $ nvmrc_path "
set -l nvmrc_node_version(nvm version( cat $ nvmrc_path))
if test " $ nvmrc_node_version " = " N / A "
nvm install(cat $ nvmrc_path)
else if test nvmrc_node_version!= node_version
nvm use $ nvmrc_node_version
end
else if test " $ node_version "!= " $ default_node_version "
echo "デフォルトのノードバージョンに戻す"
nvmはデフォルトを使用します
エンド
エンド
#〜/ .config / fish / config.fish
#初期化時に呼び出す必要があります。そうしないと、ディレクトリ切り替えをリッスンできません
load_nvm
テストの実行
テストはUrchinで書かれています。次のようにUrchin(およびその他の依存関係)をインストールします。
npm install
遅いテストと速いテストがあります。遅いテストは、ノードのインストールや正しいバージョンが使用されていることの確認などを行います。高速テストはこれを偽造して、エイリアスやアンインストールなどをテストします。nvm gitリポジトリのルートから、次のような高速テストを実行します。
npm run test/fast
次のような低速テストを実行します。
npm run test/slow
次のようにすべてのテストを実行します。
npm test
注意:テストの実行中にnvmを実行することは避けてください。
環境変数
nvmは、次の環境変数を公開します。
NVM_DIR
–nvmのインストールディレクトリ。NVM_BIN
-ここで、ノードのアクティブバージョンのノード、npm、およびグローバルパッケージがインストールされます。NVM_INC
-ノードのインクルードファイルディレクトリ(ノードのC / C ++アドオンを構築するのに便利です)。NVM_CD_FLAGS
-zshとの互換性を維持するために使用されます。NVM_RC_VERSION
-使用されている場合は、.nvmrcファイルのバージョン。
また、NVM修正PATH
、及び、存在する場合、MANPATH
およびNODE_PATH
バージョンを変更する場合。
Bashの完了
有効にするには、ソースを作成する必要がありますbash_completion
:
[[ -r $ NVM_DIR / bash_completion]] && \。 $ NVM_DIR / bash_completion
上記のソーシングラインを、プロファイルのnvmのソーシングラインのすぐ下に配置します(.bashrc
、.bash_profile
)。
使用法
nvm:
$ nvm Tab
alias deactivate install list-remote reinstall-packages uninstall version
cache exec install-latest-npm ls run unload version-remote
current help list ls-remote unalias use which
nvmエイリアス:
$ nvmエイリアス Tab
default iojs lts/* lts/argon lts/boron lts/carbon lts/dubnium lts/erbium node stable unstable
$ nvmエイリアスmy_alias Tab
v10.22.0 v12.18.3 v14.8.0
nvmの使用:
$ nvmの使用 Tab
my_alias default v10.22.0 v12.18.3 v14.8.0
nvmアンインストール:
$ nvmアンインストール Tab
my_alias default v10.22.0 v12.18.3 v14.8.0
互換性の問題
nvm
デフォルト以外の設定が設定されている場合、いくつかの問題が発生します。(#606を参照)次の問題が発生することがわかっています。
内部~/.npmrc
:
prefix = ' some / path '
環境変数:
$ NPM_CONFIG_PREFIX
$ PREFIX
シェル設定:
set -e
AlpineLinuxへのnvmのインストール
最高のパフォーマンス(およびその他の最適化)を提供するために、nvmは、実行時にノード(およびnpm)用にコンパイル済みのバイナリをダウンロードしてインストールしますnvm install X
。Nodeプロジェクトは、メインストリーム/従来のLinuxディストリビューション(Debian、Ubuntu、CentOS、RedHatなど)用に構築されたこれらのコンパイル済みバイナリをコンパイル、テスト、およびホスト/提供します。
Alpine Linuxは、メインストリーム/従来のLinuxディストリビューションとは異なり、非常にコンパクトな(〜5MB)LinuxディストリビューションであるBusyBoxに基づいています。BusyBox(したがってAlpine Linux)は、ほとんどの主流/従来のLinuxディストリビューション(musl)とは異なるC / C ++スタックを使用します。これにより、このような主流/従来のバイナリプログラムはAlpine Linuxと互換性がなくなります。したがって、Alpine Linuxで単純nvm install X
に実行して、ダウンロードしたバイナリが正しく実行されることを期待することはできません。これを試してみると、「…存在しません」というエラーが表示される可能性があります。
nvmがノードソースをダウンロードしてローカルでコンパイルするように要求する-s
フラグがnvm install
あります。
Alpine Linuxにnvmをインストールすることがまだ必要な場合、または必要な場合は、AlpineLinuxシェルから次のコマンドを実行することでこれを実現できるはずです。
apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g ++ libgcc linux-headers grep util-linux binutils findutils
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
Nodeプロジェクトにはいくつかの要望がありますが、Alpine互換のバイナリを提供するための具体的な計画はありません(構築、テスト、およびサポートのオーバーヘッドのため)。
代替案として、@ mhart(ノード寄稿者)には、ノードとオプションでnpmがプリインストールされたAlpineLinux用のDockerイメージがいくつかあります。
アンインストール/削除
手動アンインストール
nvm
手動で削除するには、次のコマンドを実行します。
$ rm -rf " $ NVM_DIR "
~/.bashrc
以下の行を編集(または他のシェルリソース構成)して削除します。
export NVM_DIR = " $ HOME /.nvm "
[ -s " $ NVM_DIR /nvm.sh " ] && \。 " $ NVM_DIR /nvm.sh " #この負荷はNVM
[[ -r $ NVM_DIR / bash_completion]] && \。 $ NVM_DIR / bash_completion
開発環境用のDocker
開発とテストを簡単にするために、開発用のDockerfileがあります。これは、Ubuntu 18.04ベースイメージに基づいており、nvm
開発に不可欠で便利なツールを使用して準備され、環境のdockerイメージを構築し、でdockerコマンドを実行します。nvm
リポジトリのルート:
$ docker build -tnvm-dev 。
これにより、現在のnvmリポジトリが事前定義された開発環境とともに、という名前のDockerイメージにパッケージ化されます。正常にnvm-dev
ビルドされたら、次の方法でイメージを検証しますdocker images
。
$ docker画像
リポジトリタグの画像ID作成サイズ
nvm-dev最新9ca4c57a97d87日前650MB
エラーメッセージが表示されない場合は、次の操作を簡単に行うことができます。
$ docker run -h nvm-dev -it nvm-dev
nvm @ nvm-dev:〜 / .nvm $
イメージの作成には約8分かかり、イメージサイズは約650MBになるため、本番環境での使用には適していません。
Dockerの詳細とドキュメントについては、公式Webサイトを参照してください。
問題
-
ノードバージョンをインストールしようとしてインストールが失敗した場合は、必ず実行
nvm cache clear
してキャッシュされたノードのダウンロードを削除してください。そうしないと、次のようなエラーが発生する可能性があります。curl:(33)HTTPサーバーはバイト範囲をサポートしていないようです。再開できません。
-
私はどこにい
sudo node
ますか?#43をチェックしてください -
ノードのv0.8.6リリース後、nvmはバイナリパッケージからのインストールを試みます。ただし、一部のシステムでは、共有ライブラリの非互換性のために、公式のバイナリパッケージが機能しません。このような場合は、
-s
オプションを使用して、ソースからのインストールを強制します。
nvm install -s 0.8.6
default
エイリアスを設定しても新しいシェルでノードバージョンが確立されない場合(つまり、nvm current
yieldssystem
)、システムのノードPATH
がnvm.sh
シェルプロファイルのソース行の前に設定されていることを確認してください(#658を参照)。
macOSのトラブルシューティング
nvmノードのバージョンがvimシェルに見つかりません
ノードバージョンをシステムノードバージョン以外のバージョンに設定し、nvm use 6.2.1
vimを開いて実行:!node -v
するとv6.2.1
、システムバージョンが表示されるかどうかを確認する必要がありますv0.12.7
。実行する必要があります:
sudo chmod ugo-x / usr / libexec / path_helper
この問題の詳細については、dotphiles / dotzshをご覧ください。
nvmはnpmconfigの「prefix」オプションと互換性がありません
この問題のいくつかの解決策はここにあります
この問題を引き起こすもう1つのエッジケースがあります。これは、$HOME
パスとユーザーのホームディレクトリの実際の名前との不一致です。
のユーザーディレクトリ名$HOME
と実行時に表示されるユーザーディレクトリ名がls /Users/
同じように大文字になっていることを確認する必要があります(この問題を参照してください)。
ユーザーディレクトリやアカウント名を変更するには、こちらの手順に従ってください
Homebrewはzshディレクトリを安全でなくします
zsh compinit:安全でないディレクトリ、リストに対してcompauditを実行します。
安全でないディレクトリを無視して[y]を続行するか、compinit [n]を中止しますか?y
Homebrewは/usr/local/share/zsh/site-functions
、やのような安全でないディレクトリを引き起こし/usr/local/share/zsh
ます。これはないnvm
問題-それは自作問題です。この問題に関連するいくつかの解決策については、こちらを参照してください。
M1チップを搭載したMac
2021年1月: Appleの新しいM1チップ(arm64アーキテクチャ)用の15.xより前のバージョン用にコンパイル済みのNodeJSバイナリはありません。
あなたが遭遇するかもしれないいくつかの問題:
nvm
インストールに使用して、たとえばv14.15.4
:- Cコードは正常にコンパイルされます
- ただし、使用するとメモリ不足エラーでクラッシュします
- ノードで使用可能なメモリを増やしても、メモリ不足エラーが発生します。
$ NODE_OPTIONS = " --max-old-space-size = 4096 " ./node_modules/.bin/your_node_package
nvm
一部のバージョンのインストールに使用すると、コンパイルが失敗しますnvm
いくつかのバージョンを正常にコンパイルした後、yarn
またはnpm
後でincorrect data check
エラーでパッケージのインストールに失敗する可能性があります。
この問題の解決策の1つは、シェルのアーキテクチャをarm64からx86に変更することです。
それを仮定しましょう:
- すでにバージョンが
12.20.1
あり、14.15.4
を使用してインストールされていますnvm
- 現在使用されているバージョンは
14.15.4
zsh
シェルを使用しています- Rosetta 2がインストールされている(macOSでは、Intelのみの非コマンドラインアプリケーションを初めて開いたときにRosetta 2をインストールするように求められます。または、コマンドラインからRosetta 2をインストールすることもできます
softwareupdate --install-rosetta
)
#実行しているバージョンを確認します。
$ node --version
v14.15.4
# `node`バイナリのアーキテクチャを確認します。
$ node -p process.arch
arm64
#これは、アーチがM1チップ用であり、問題を引き起こしていることを確認します。
#それで、それをアンインストールする必要があります。
#現在使用しているバージョンをアンインストールできないため、別のバージョンに切り替えます。
$ nvm install v12.20.1
#ここで、置き換えたいバージョンをアンインストールします。
$ nvmアンインストールv14.15.4
# 64ビットX86アーキテクチャで新しいzshプロセスを起動します。
$ arch -x86_64 zsh
# NVMを使用してノードにインストールします。これにより、プリコンパイルされたx64バイナリがダウンロードされます。
$ nvm install v14.15.4
#ここで、アーキテクチャが正しいことを確認します。
$ node -p process.arch
x64
#これで、arm64zshプロセスに安全に戻ることができます。
$ exit
#ネイティブシェルに戻ります。
$アーチ
arm64
#そして、新しいバージョンが使用できるようになりました:
$ nvm use v14.15.4
現在、ノードv14.15.4(npm v6.14.10)を使用しています
メンテナ
現在、唯一のメンテナは@ljharbです-より多くのメンテナが大歓迎です、そして私たちは時間をかけてチームに人々を加えることを望んでいます。プロジェクトが進展するにつれて、ガバナンスは再評価されます。
ライセンス
LICENSE.mdを参照してください。
著作権表示
Copyright OpenJSFoundationおよびnvm
寄稿者。全著作権所有。OpenJS財団は、米国およびその他の国における登録商標および使用の商標を持っています。OpenJS Foundationの商標のリストについては、当社の商標ポリシーおよび商標リストを参照してください。Node.jsは、Joyent、Inc。の商標であり、許可を得て使用しています。OpenJS Foundationの商標リストに記載されていない商標およびロゴは、それぞれの所有者の商標™または登録®商標です。それらの使用は、それらとの提携またはそれらによる承認を意味するものではありません。
OpenJS Foundation | 利用規約| プライバシーポリシー| OpenJS財団細則| 商標ポリシー| 商標リスト| クッキーポリシー