イントロ
について
インストールとアップデート
追加メモ
Linux でのトラブルシューティング
macOS でのトラブルシューティング
アンシブル
インストールと更新スクリプト
インストールの検証
重要な注意事項
Gitのインストール
手動インストール
手動アップグレード
使用法
.nvmrcファイルのあるディレクトリでnvm use自動的に呼び出す
バッシュ
zsh
魚
Authorization ヘッダーをミラーに渡す
カスタムカラーの永続化
カラー化された出力の抑制
長期サポート
インストール中のグローバル パッケージの移行
インストール中にファイルからのデフォルトのグローバル パッケージ
io.js
ノードのシステムバージョン
バージョンのリスト
カスタムカラーの設定
PATHの復元
デフォルトのノードのバージョンを設定する
ノードバイナリのミラーを使用する
.nvmrc
より深いシェル統合
テストの実行
環境変数
Bash の完了
使用法
互換性の問題
Alpine Linux への nvm のインストール
アルパイン Linux 3.13+
アルパイン Linux 3.5 - 3.12
アンインストール/削除
手動アンインストール
開発環境用のDocker
問題点
macOSのトラブルシューティング
WSL のトラブルシューティング
メンテナー
プロジェクトサポート
エンタープライズサポート
ライセンス
著作権表示
nvm使用すると、コマンド ラインからさまざまなバージョンのノードをすばやくインストールして使用できます。
例:
$ nvm 使用 16 現在ノード v16.9.1 (npm v7.21.1) を使用しています $ ノード -v v16.9.1 $ nvm 使用 14 現在ノード v14.18.0 (npm v6.14.15) を使用しています $ ノード -v v14.18.0 $ nvm インストール 12 現在ノード v12.22.6 (npm v6.14.5) を使用しています $ ノード -v v12.22.6
とてもシンプルです!
nvm は、node.js のバージョン マネージャーであり、ユーザーごとにインストールされ、シェルごとに呼び出されるように設計されています。 nvm 、POSIX 準拠のシェル (sh、dash、ksh、zsh、bash)、特に unix、macOS、および Windows WSL のプラットフォームで動作します。
nvm をインストールまたは更新するには、インストール スクリプトを実行する必要があります。これを行うには、スクリプトを手動でダウンロードして実行するか、次の cURL または Wget コマンドを使用します。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh |バッシュ
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh |バッシュ
上記のコマンドのいずれかを実行すると、スクリプトがダウンロードされ、実行されます。スクリプトは nvm リポジトリのクローンを~/.nvmに作成し、以下のスニペットのソース行を正しいプロファイル ファイル ( ~/.bash_profile 、 ~/.zshrc 、 ~/.profile 、または~/.bashrc ) に追加しようとします。 。
import 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ファイルはそこに配置されます。
上記のスクリプト (... nvm.sh --no-use ) の最後に--no-useを追加すると、手動でuseまでnvmの使用を延期できます。
NVM_SOURCE 、 NVM_DIR 、 PROFILE 、およびNODE_VERSION変数を使用して、インストール ソース、ディレクトリ、プロファイル、およびバージョンをカスタマイズできます。例: curl ... | NVM_DIR="path/to/nvm" 。 NVM_DIR末尾にスラッシュが含まれていないことを確認してください。
インストーラーは、 git 、 curl 、またはwgetいずれか利用可能なものを使用してnvmをダウンロードできます。
install.shスクリプトを実行する前にPROFILE=/dev/nullを設定することで、シェル構成を編集しないようにインストーラーに指示できます (たとえば、zsh nvm プラグイン経由で完了をすでに取得している場合)。これを行うための 1 行コマンドの例を次に示します。 PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash'
Linux では、インストール スクリプトの実行後、 nvm: command not found 」というメッセージが表示されるか、 command -v nvm入力してもターミナルからフィードバックが表示されない場合は、現在のターミナルを閉じて、新しいターミナルを開いて、もう一度検証してみてください。あるいは、コマンド ラインでさまざまなシェルに対して次のコマンドを実行できます。
bash : source ~/.bashrc
zsh : source ~/.zshrc
ksh : . ~/.profile
これらはnvmコマンドを認識するはずです。
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または.bashrcファイルがない可能性があります。 touch ~/.bash_profileまたはtouch ~/.bashrcを使用していずれかを作成し、インストール スクリプトを再度実行します。次に、 を実行します. ~/.bash_profileまたは. ~/.bashrc使用してnvmコマンドを取得します。
以前にbash使用していましたが、 zshがインストールされています。これらの行を~/.zshrcに手動で追加して、 を実行する必要があります. ~/.zshrc 。
場合によっては、ターミナル インスタンスを再起動するか、 を実行する必要があります. ~/.nvm/nvm.sh 。ターミナルを再起動するか、新しいタブ/ウィンドウを開くか、ソース コマンドを実行すると、コマンドと新しい設定がロードされます。
上記の方法で問題が解決しない場合は、ターミナル インスタンスを再起動する必要がある可能性があります。ターミナルで新しいタブ/ウィンドウを開いて再試行してください。
上記の方法で問題が解決しない場合は、次のことを試してください。
bash を使用している場合は、 .bash_profile (または~/.profile ) が~/.bashrc適切にソースしていない可能性があります。この問題は、 source ~/<your_profile_file>を追加するか、以下の次の手順に従うことで修正できます。
正しい nvm ディレクトリを見つけて nvm をロードするインストール セクションのスニペットを、通常のプロファイル ( ~/.bash_profile 、 ~/.zshrc 、 ~/.profile 、または~/.bashrc ) に追加してみてください。
この問題と考えられる回避策の詳細については、ここを参照してください。
注Apple Silicon チップを搭載した Mac の場合、node は v16.0.0 以降、 arm64アーチ Darwin パッケージの提供を開始し、v14.17.0 以降、ソースからコンパイルする場合の実験的なarm64サポートを提供し始めました。 nvm使用してノードをインストールする際に問題が発生した場合は、これらのバージョン以降のいずれかに更新することをお勧めします。
タスクを使用できます。
- 名前: nvm ansible.builtin.shell をインストールします: >curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash 引数: 作成: "{{ ansible_env.HOME }}/.nvm/nvm.sh"nvm がインストールされていることを確認するには、次の手順を実行します。
コマンド -v nvm
インストールが成功した場合は、 nvmが出力されるはずです。 nvm実行可能なバイナリではなく、ソースされたシェル関数であるため、 which nvmが機能しないことに注意してください。
注: Linux では、インストール スクリプトの実行後、 nvm: command not found 」というメッセージが表示されるか、 command -v nvm入力してもターミナルからフィードバックが表示されない場合は、現在のターミナルを閉じて、新しいターミナルを開いて、再度確認してみてください。
事前にパッケージ化されたバイナリが利用できないシステムを実行している場合、つまりソース コードから Node または io.js をインストールする場合は、システムに C++ コンパイラがあることを確認する必要があります。 OS X の場合は Xcode が機能し、Debian/Ubuntu ベースの GNU/Linux の場合はbuild-essentialパッケージとlibssl-devパッケージが機能します。
注: nvm場合によっては Windows もサポートします。 WSL (Windows Subsystem for Linux) のバージョンに応じて、WSL 経由で動作するはずです。 GitBash (MSYS) または Cygwin でも動作するはずです。それ以外の場合、Windows の場合は、いくつかの代替手段が存在しますが、これらはサポートも開発もされていません。
nvm-windows
ノーディスト
NV
注: nvm Fish もサポートしていません (#303 を参照)。代替手段が存在しますが、これらは当社によってサポートも開発もされていません。
Bass を使用すると、Bash 用に書かれたユーティリティを Fish Shell で使用できるようになります。
fast-nvm-fish はバージョン番号 (エイリアスではなく) でのみ機能しますが、シェルの起動を大幅に遅くすることはありません
plugin-nvm Oh My Fish 用プラグイン。nvm とその補完を Fish Shell で利用できるようにします。
fnm - フィッシャーマンベースの魚用バージョンマネージャー
Fish-nvm - Fish 用の nvm のラッパーで、実際に使用されるまで nvm のソーシングを遅らせます。
注: FreeBSD にはまだいくつかの問題があります。これは、FreeBSD 用の公式のビルド済みバイナリがなく、ソースからのビルドにはパッチが必要な場合があるためです。発行チケットを参照してください。
[#900] [バグ] FreeBSD 上のノードにはパッチが必要な場合があります
ノードjs/ノード#3716
注: OS X では、Xcode がインストールされておらず、約 4.3 GB のファイルをダウンロードしたくない場合は、 Command Line Toolsをインストールできます。その方法については、このブログ投稿をご覧ください。
OS X Mavericks および Yosemite にコマンド ライン ツールをインストールする方法 (Xcode を使用しない)
注: OS X では、「システム」ノードがインストールされており、モジュールをグローバルにインストールしたい場合は、次の点に注意してください。
nvmを使用する場合、 npm -gを使用してモジュールをグローバルにインストールするためにsudo使用する必要はありません。そのため、 sudo npm install -g grunt実行する代わりに、代わりにnpm install -g grunt実行してください。
~/.npmrcファイルがある場合は、 prefix設定 ( nvmと互換性がない) が含まれていないことを確認してください。
以前の「システム」ノードのインストールを維持することはできます (そうすべきではありません)。ただし、 nvmユーザー アカウント (nvm のインストールに使用したアカウント) でのみ使用できます。他のユーザーは/usr/local/lib/node_modules/*使用するのに対し、あなたのユーザー アカウントは~/.nvm/versions/node/vX.XX/lib/node_modules/*を使用するため、これによりバージョンの不一致が発生する可能性があります。
Homebrew のインストールはサポートされていません。 homebrew-installed nvmに問題がある場合は、問題を報告する前に、それをbrew uninstall 、以下の手順に従ってインストールしてください。
注: zsh使用している場合は、 nvm zsh プラグインとして簡単にインストールできます。 zsh-nvmをインストールし、 nvm upgradeを実行してアップグレードします。
注: v1.7 より前の Git バージョンでは、https プロトコル経由で GitHub からnvmソースをクローン作成する際に問題が発生する可能性があります。また、v1.6 より前の git の動作も異なり、v1.17.10 より前の git はタグをクローンできないため、最低限の必要な git バージョンは v1.7.10 です。ここで説明した問題に興味がある場合は、GitHub の HTTPS クローン作成エラーの記事を参照してください。
gitがインストールされている場合 (git v1.7.10 以降が必要):
ユーザー プロファイルのルートにこのリポジトリのクローンを作成します
どこからでもcd ~/その後git clone https://github.com/nvm-sh/nvm.git .nvm
cd ~/.nvmを実行し、 git checkout v0.40.1で最新バージョンをチェックアウトします。
nvmをシェルから取得してアクティブにします: . ./nvm.sh
次に、これらの行を~/.bashrc 、 ~/.profile 、または~/.zshrcファイルに追加して、ログイン時に自動的にソースされるようにします: (上記のファイルの複数に追加する必要がある場合があります)
import NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # これにより、nvm[ -s "$NVM_DIR/bash_completion" ] && がロードされます。 "$NVM_DIR/bash_completion" # これにより nvm bash_completion がロードされます
完全な手動インストールの場合は、次の行を実行して、まずnvmリポジトリのクローンを$HOME/.nvmに作成してから、 nvmをロードします。
エクスポート NVM_DIR="$HOME/.nvm" && ( git clone https://github.com/nvm-sh/nvm.git "$NVM_DIR" cd "$NVM_DIR" git checkout `git description --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`) && 。 「$NVM_DIR/nvm.sh」
次に、これらの行を~/.bashrc 、 ~/.profile 、または~/.zshrcファイルに追加して、ログイン時に自動的にソースされるようにします: (上記のファイルの複数に追加する必要がある場合があります)
import NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # これにより、nvm[ -s "$NVM_DIR/bash_completion" ] && がロードされます。 "$NVM_DIR/bash_completion" # これにより nvm bash_completion がロードされます
gitを使用した手動アップグレードの場合 (git v1.7.10+ が必要):
$NVM_DIRに変更します
最新の変更をプルダウンします
最新バージョンをチェックしてください
新しいバージョンをアクティブ化する
( cd "$NVM_DIR" git fetch --tags 原点 git checkout `git description --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`) && 。 「$NVM_DIR/nvm.sh」
ノードの最新リリースをダウンロード、コンパイル、インストールするには、次の手順を実行します。
nvm install node # 「node」は最新バージョンのエイリアスです
特定のバージョンのノードをインストールするには:
nvm install 14.7.0 # または 16.3.0、12.22.1 など
エイリアスを設定するには:
nvm エイリアス my_alias v14.4.0
エイリアスにスペースやスラッシュが含まれていないことを確認してください。
最初にインストールされたバージョンがデフォルトになります。新しいシェルは、ノードのデフォルト バージョン (例: nvm alias default ) で起動します。
ls-remoteを使用して、利用可能なバージョンを一覧表示できます。
nvm ls-リモート
そして、新しいシェルでは、インストールされているバージョンを使用するだけです。
nvm 使用ノード
または、単に実行することもできます。
nvm 実行ノード --version
または、目的のバージョンのノードを使用してサブシェルで任意のコマンドを実行できます。
nvm exec 4.2 ノード --version
実行可能ファイルがインストールされている場所へのパスを取得することもできます。
nvm どれ 12.22
「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) のスケジュールがあります。たとえば、「argon」行から、最新の LTS の場合はlts/* 、LTS リリースの場合はlts/argonという表記を使用して、エイリアスおよび.nvmrcファイル内の 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
nvmのローカル コピーが https://nodejs.org に接続するたびに、使用可能なすべての LTS 回線に適切なローカル エイリアスが再作成されます。これらのエイリアス ( $NVM_DIR/alias/ltsに保存されている) はnvmによって管理されており、これらのファイルを変更、削除、または作成しないでください。変更は元に戻されることが予想され、これらのファイルに干渉するとバグが発生する可能性があります。サポートされません。
最新の LTS バージョンのノードを取得し、既存のインストール済みパッケージを移行するには、次を使用します。
nvm install --reinstall-packages-from=current 'lts/*'
新しいバージョンの Node.js をインストールし、以前のバージョンから npm パッケージを移行する場合は、次の手順を実行します。
nvm install --reinstall-packages-from=node ノード
これは、まず「nvm version ノード」を使用して、パッケージの移行元の現在のバージョンを識別します。次に、リモート サーバーからインストールする新しいバージョンを解決し、インストールします。最後に、「nvm reinstall-packages」を実行して、npm パッケージを以前のバージョンの Node から新しいバージョンに再インストールします。
次のように、特定のバージョンの Node から npm パッケージをインストールして移行することもできます。
nvm install --reinstall-packages-from=5 6 nvm install --reinstall-packages-from=iojs v4.2
パッケージを明示的に再インストールしても npm のバージョンは更新されないことに注意してください。これは、npm が新しいノード バージョンの壊れたバージョンに誤ってアップグレードされないようにするためです。
npm を同時に更新するには、次のように--latest-npmフラグを追加します。
nvm install --reinstall-packages-from=default --latest-npm 'lts/*'
または、いつでも次のコマンドを実行して、現在のノード バージョンでサポートされている最新の npm バージョンを取得できます。
nvm インストール-最新-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フラグ。
新しいバージョンをインストールするたびにインストールしたいデフォルト パッケージのリストがある場合は、それもサポートします。パッケージ名を 1 行に 1 つずつファイル$NVM_DIR/default-packagesに追加するだけです。 npm がパッケージ引数として受け入れるものはすべてコマンドラインに追加できます。
# $NVM_DIR/default-packagesrimraf オブジェクト検査@1.0.2 スティーブマオ/左パッド
io.js をインストールする場合:
nvm インストール iojs
新しいバージョンの io.js をインストールし、以前のバージョンから npm パッケージを移行する場合は、次のようにします。
nvm install --reinstall-packages-from=iojs iojs
ノード内の npm パッケージの移行について説明したのと同じガイドラインが io.js に適用されます。
システムにインストールされたバージョンのノードを使用する場合は、特別なデフォルトのエイリアス「system」を使用できます。
NVM使用システム nvm run system --version
インストールされているバージョンを確認したい場合は、次のようにします。
nvm ls
インストールできるバージョンを確認したい場合は、次のようにします。
nvm ls-リモート
バージョン情報とエイリアス情報を表示する色を 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 セットカラー rgBcm
シェルの終了後もカスタム カラーを保持したい場合は、シェル プロファイルのNVM_COLORS変数をエクスポートします。たとえば、シアン、マゼンタ、緑、太字の赤、太字の黄色を使用する場合は、次の行を追加します。
import 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=ダム nvm ls
PATH を復元するには、それを非アクティブ化します。
nvmの非アクティブ化
新しいシェルで使用されるデフォルトのノード バージョンを設定するには、エイリアス「default」を使用します。
nvm aliasデフォルト ノード # これは、nodenvm aliasdefault 18 の最新インストール バージョンを指します # これは、nodenvm alias default 18.12 の最新インストール バージョンの v18.x バージョンを指します # これは、ノードの最新インストール v18.12.x バージョンを指します
ノード バイナリのミラーを使用するには、 $NVM_NODEJS_ORG_MIRRORを設定します。
import NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvmインストールノード NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm インストール 4.2
io.js バイナリのミラーを使用するには、 $NVM_IOJS_ORG_MIRRORを設定します。
import NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm インストール iojs-v1.0.3 NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm インストール iojs-v1.0.3
nvm use 、デフォルトでは「現在の」シンボリックリンクは作成されません。この動作を有効にするには、 $NVM_SYMLINK_CURRENT "true" に設定します。これは、IDE で役立つ場合があります。この環境変数を有効にして複数のシェル タブでnvm使用すると、競合状態が発生する可能性があることに注意してください。
Authorization ヘッダーをミラー URL に渡すには、 $NVM_AUTH_HEADERを設定します。
NVM_AUTH_HEADER="ベアラー シークレット トークン" nvm インストール ノード
ノードのバージョン番号 (またはnvm理解するその他の文字列。詳細についてはnvm --help参照) を含む.nvmrcファイルをプロジェクトのルート ディレクトリ (または任意の親ディレクトリ) に作成できます。その後、 nvm use 、 nvm install 、 nvm exec 、 nvm run 、およびコマンド ラインでバージョンが指定されていない場合に.nvmrcファイルで指定されたバージョンを使用するnvm which 。
たとえば、nvm を現在のディレクトリの最新の 5.9 リリース、最新の LTS バージョン、または最新のノード バージョンにデフォルト設定するには、次のようにします。
$ echo "5.9" > .nvmrc $ echo "lts/*" > .nvmrc # デフォルトで最新の LTS バージョンに設定$ echo "node" > .nvmrc # デフォルトで最新バージョンに設定
[注意:これらの例は、 POSIX 準拠のシェル バージョンのechoを前提としています。 Windows cmd開発環境を使用する場合、たとえば.nvmrcファイルを使用してリモート Linux 展開を構成する場合は、 "がコピーされて無効なファイルになることに注意してください。削除してください。」
次に、nvm を実行するときに次を使用します。
$nvmの使用 バージョン <5.9> の「/path/to/project/.nvmrc」が見つかりました。現在はノード v5.9.1 (npm v3.7.3) を使用しています。
nvm install を実行すると正しいバージョンに切り替わりますが、正しいノード バージョンがまだインストールされていない場合は、自動的にインストールされます。
$ nvm インストール バージョン <5.9> の「/path/to/project/.nvmrc」が見つかりました。ノード v5.9.1 をダウンロードしてインストールしています... ダウンロード中 https://nodejs.org/dist/v5.9.1/node-v5.9.1-linux-x64.tar.xz...################## ################################################ ############### 100.0% sha256sum でチェックサムを計算しています チェックサムが一致しました!現在ノード v5.9.1 (npm v3.7.3) を使用しています
nvm useなど。アル。ディレクトリ構造を現在のディレクトリから上にたどり、 .nvmrcファイルを探します。つまり、 nvm use 。アル。ディレクトリのサブディレクトリに.nvmrcがあると、その.nvmrcが使用されます。
.nvmrcファイルの内容には、正確に 1 つの<version> ( nvm --helpで記述) とそれに続く改行が含まれている必要があります。 .nvmrcファイルにはコメントが含まれる場合もあります。コメント区切り文字は#で、これとその後のテキスト、空白行、先頭と末尾の空白は解析時に無視されます。
=を使用したキーと値のペアも許可および無視されますが、将来の使用のために予約されており、将来検証エラーが発生する可能性があります。
npx nvmrcを実行して.nvmrcファイルを検証します。そのツールの結果が nvm と一致しない場合は、どちらかにバグがあるため、問題を提出してください。
avn使用すると、シェルに深く統合し、ディレクトリを変更するときにnvm自動的に呼び出すことができます。 avn nvmメンテナによってサポートされていません。問題をavnチームに報告してください。
nvshim使用して、 node 、 npm 、およびnpxビンを shim し、現在のディレクトリ内のnvm構成を自動的に使用することもできます。 nvshim 、 nvmメンテナによってサポートされていません。問題をnvshimチームに報告してください。
軽量のソリューションをお好みの場合は、以下のレシピがnvmユーザーによって提供されています。これらは、 nvmメンテナによってサポートされていません。ただし、より多くの例についてのプル リクエストは受け付けています。
.nvmrcファイルのあるディレクトリでnvm use自動的に呼び出すプロファイル ( ~/.bash_profile 、 ~/.zshrc 、 ~/.profile 、または~/.bashrc ) で、新しいディレクトリに入るたびにnvm useに次の行を追加します。
$HOME/.bashrcの最後に次の内容を追加します。
cdnvm() { コマンド cd "$@" || $を返しますか?
nvm_path="$(nvm_find_up .nvmrc | command 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 はデフォルトのファイルを使用します elif [[ -s "${nvm_path}/.nvmrc" && -r "${nvm_path}/.nvmrc" ]];次に nvm_version を宣言します
nvm_version=$(<"${nvm_path}"/.nvmrc) destroy Local_resolved_nvm_version # `nvm ls` はローカルで利用可能なすべてのバージョンをチェックします # 一致するバージョンが複数ある場合は、最新のものを選択します # `->` と ` を削除します*` 文字とスペース # ローカル バージョンが見つからない場合、`locally_resolved_nvm_version` は `N/A` になります
local_resolved_nvm_version=$(nvm ls --no-colors "${nvm_version}" | command tail -1 | command tr -d '->*' | command tr -d '[:space:]') #まだインストールされていない場合は、インストールします # `nvm install` は新しくインストールされたバージョンを暗黙的に使用します if [ "${locally_resolved_nvm_version}" = 「該当なし」];それから
nvm インストール "${nvm_version}"; elif [ "$(nvm current)" != "${locally_resolved_nvm_version}" ];それから
nvm は "${nvm_version}" を使用します。 fi fi}エイリアス cd='cdnvm'cdnvm "$PWD" ||出口このエイリアスは、 .nvmrcファイルを検出するために、現在のディレクトリから「上」を検索します。見つかった場合は、そのバージョンに切り替えます。そうでない場合は、デフォルトのバージョンが使用されます。
このシェル関数は (必要に応じて) インストールされ、 .nvmrcが見つかった場合は指定されたノードのバージョンnvm use 、それ以外の場合はnvm use default 。
これを$HOME/.zshrcに入れると、どのノードをuseかを nvm に指示する文字列を含む.nvmrcファイルが含まれるディレクトリに入るたびに、 nvm use自動的に呼び出されます。
# これを nvm の初期化の後に配置します!autoload -U add-zsh-hookload-nvmrc() { local nvmrc_path
nvmrc_path="$(nvm_find_nvmrc)" if [ -n "$nvmrc_path" ];次にローカルの nvmrc_node_version
nvmrc_node_version=$(nvm バージョン "$(cat "${nvmrc_path}")") if [ "$nvmrc_node_version" = "N/A" ];それから
nvm install elif [ "$nvmrc_node_version" != "$(nvm バージョン)" ];それから
nvm use fi elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm バージョン)" != "$(nvm バージョン デフォルト)" ];次に、「nvm のデフォルト バージョンに戻す」をエコーします。
nvm はデフォルトの fi を使用します}
add-zsh-hook chpwd ロード-nvmrc
ロード-nvmrcこれにはベースがインストールされている必要があります。
# ~/.config/fish/functions/nvm.fishfunction nvm
ベースソース ~/.nvm/nvm.sh --no-use ';' nvm $argvend# ~/.config/fish/functions/nvm_find_nvmrc.fishfunction nvm_find_nvmrc
ベースソース ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrcend# ~/.config/fish/functions/load_nvm.fishfunction load_nvm --on-variable="PWD" set -ldefault_node_version (nvm バージョンのデフォルト) set -l node_version (nvm バージョン) set -l nvmrc_path (nvm_find_nvmrc) if test -n "$nvmrc_path" セット -l nvmrc_node_version (nvm バージョン (cat $nvmrc_path)) テスト "$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 はデフォルトの endend# ~/.config/fish/config.fish# を使用する必要があります。初期化時に呼び出す必要があります。そうしないと、ディレクトリの切り替えをリッスンすることはできません。 workload_nvm > /dev/stderrテストは 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_completionソースする必要があります。
[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion
上記のソース行を、プロファイル ( .bashrc 、 .bash_profile ) の nvm のソース行のすぐ下に配置します。
NVM:
$ nvmタブ
エイリアス非アクティブ化インストール リスト-リモート再インストール-パッケージのアンインストール バージョン キャッシュ実行インストール-最新-npm ls実行アンロードバージョン-リモート 現在のヘルプ リスト ls-remote unalias が使用するもの
nvm エイリアス:
$ nvm aliasタブ
デフォルト iojs lts/* lts/argon lts/boron lts/carbon lts/dubnium lts/erbium ノード 安定 不安定
$ nvm alias my_aliasタブ
v10.22.0 v12.18.3 v14.8.0
nvm の使用:
$ nvm useタブ
my_alias default v10.22.0 v12.18.3 v14.8.0
nvmアンインストール:
$ nvm uninstallタブ
my_alias default v10.22.0 v12.18.3 v14.8.0
デフォルト以外の設定が設定されている場合、 nvmいくつかの問題が発生します。 (#606 を参照) 以下は問題を引き起こすことが知られています。
~/.npmrc内:
prefix='何らかの/パス'
環境変数:
$NPM_CONFIG_PREFIX$PREFIX
シェル設定:
セット -e
最高のパフォーマンス (およびその他の最適化) を提供するために、 nvm install X実行すると、nvm はノード (および npm) 用のプリコンパイルされたバイナリをダウンロードしてインストールします。 Node プロジェクトは、主流/従来の Linux ディストリビューション (Debian、Ubuntu、CentOS、RedHat など) 向けに構築されたこれらのコンパイル済みバイナリをコンパイル、テスト、ホスト/提供します。
Alpine Linux は、主流/従来の Linux ディストリビューションとは異なり、非常にコンパクト (約 5MB) の Linux ディストリビューションである BusyBox をベースにしています。 BusyBox (したがって Alpine Linux) は、ほとんどの主流/従来の Linux ディストリビューションとは異なる C/C++ スタック (musl) を使用します。これにより、このような主流/従来型向けに構築されたバイナリ プログラムは Alpine Linux と互換性がなくなります。そのため、単に Alpine Linux にnvm install X 、ダウンロードしたバイナリが正しく実行されることを期待することはできません。それを試してみてください。
nvm installには-sフラグがあり、nvm にノード ソースをダウンロードしてローカルでコンパイルするよう要求します。
Alpine Linux に nvm をインストールしたい場合、または行う必要がある場合は、使用しているバージョンに応じて、Alpine Linux シェルから次のコマンドを実行することでこれを実現できるはずです。
apk add -Ucurl bash ca-certificates openssl ncurses coreutils python3 make gcc g++ libgcc linux-headers grep util-linux binutils findutils curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh |バッシュ
apk add -Ucurl 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.40.1/install.sh |バッシュ
注: Alpine 3.5 は v6.9.5 までの NodeJS バージョンのみをインストールでき、Alpine 3.6 は v6.10.3 までのバージョンのみをインストールでき、Alpine 3.7 は v8.9.3 までのバージョンをインストールし、Alpine 3.8 は v8.14.0 までのバージョンをインストールし、Alpine 3.9 は v8.14.0 までのバージョンをインストールします。 v10.19.0 までのバージョン、Alpine 3.10 は、v10.19.0 までのバージョンをインストールしますv10.24.1、Alpine 3.11 は v12.22.6 までのバージョンをインストール、Alpine 3.12 は v12.22.12 までのバージョンをインストール、Alpine 3.13 および 3.14 は v14.20.0 までのバージョンをインストール、Alpine 3.15 および 3.16 は v16.16.0 までのバージョンをインストールします (これらはメインブランチのすべてのバージョン)。 Alpine 3.5 ~ 3.12 は古いバージョンなので、NodeJS をビルドするにはパッケージpython2が必要でした。 Alpine 3.13 以降では、新しい NodeJS バージョンを正常にビルドするにはpython3必要ですが、Alpine 3.5 ~ 3.15 でサポートされているノードのバージョンをビルドする必要がある場合は、Alpine 3.13 以降でpython2使用できます。インストールする必要がある NodeJS のバージョンを指定するだけです。パッケージインストールスクリプト。
Node プロジェクトには、Alpine 互換バイナリを提供するという希望はありますが、具体的な計画はありません (構築、テスト、サポートのオーバーヘッドのため)。
潜在的な代替手段として、@mhart (Node コントリビューター) には、Node とオプションで npm を備えた Alpine Linux 用のいくつかの Docker イメージがプリインストールされています。
nvm手動で削除するには、次のコマンドを実行します。
まず、 nvm unload使用してターミナル セッションから nvm コマンドを削除し、インストール ディレクトリを削除します。
$ nvm_dir="${NVM_DIR:-~/.nvm}"$ nvm アンロード
$ rm -rf "$nvm_dir" ~/.bashrc (または他のシェル リソース構成) を編集し、以下の行を削除します。
import NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # これにより、nvm[[ -r $NVM_DIR/bash_completion ]] && がロードされます。 $NVM_DIR/bash_completion
開発とテストの作業を容易にするために、開発用の Dockerfile が用意されています。これは Ubuntu 18.04 ベース イメージに基づいており、 nvm開発に不可欠で便利なツールが用意されています。環境の docker イメージを構築するには、次の場所で docker コマンドを実行します。 nvmリポジトリのルート:
$ docker build -t nvm-dev 。
これにより、現在の nvm リポジトリと事前定義された開発環境がnvm-devという名前の Docker イメージにパッケージ化されます。ビルドが成功したら、 docker images介してイメージを検証します。
$ docker イメージ リポジトリ タグのイメージ ID 作成サイズ nvm-dev 最新 9ca4c57a97d8 7 日前 650 MB
エラー メッセージが表示されない場合は、次の作業を簡単に行うことができます。
$ docker run -h nvm-dev -it nvm-dev nvm@nvm-dev:~/.nvm$
イメージの構築には約 8 分かかり、イメージ サイズは約 650 MB になるため、実稼働環境での使用には適さないことに注意してください。
docker の詳細とドキュメントについては、その公式 Web サイトを参照してください。
https://www.docker.com/
https://docs.docker.com/
ノードのバージョンをインストールしようとしてインストールが失敗した場合は、必ずnvm cache clearを実行して、キャッシュされたノードのダウンロードを削除してください。そうしないと、次のようなエラーが発生する可能性があります。
curl: (33) HTTP サーバーはバイト範囲をサポートしていないようです。再開できません。
私のsudo nodeどこですか? #43 をチェックしてください
ノードの v0.8.6 リリース後、nvm はバイナリ パッケージからのインストールを試行します。ただし、一部のシステムでは、共有ライブラリの互換性がないため、公式バイナリ パッケージが動作しません。このような場合は、 -sオプションを使用してソースから強制的にインストールします。
nvm インストール -s 0.8.6
defaultエイリアスを設定しても新しいシェルでノードのバージョンが確立されない場合 (つまり、 nvm current system生成する)、シェル プロファイルのnvm.shソース行の前にシステムのノードPATHが設定されていることを確認してください (#658 を参照)
nvm ノードのバージョンが vim シェルで見つかりません
ノード バージョンをシステム ノード バージョンnvm use 6.2.1 、vim を開いて:!node -vを実行します。システム バージョンv0.12.7表示されれば、 v6.2.1表示されるはずです。以下を実行する必要があります:
sudo chmod ugo-x /usr/libexec/path_helper
この問題の詳細については、dotphiles/dotzsh を参照してください。
nvm は npm config の「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問題ではなく、自作の問題です。この問題に関連するいくつかの解決策については、ここを参照してください。
Apple Siliconチップを搭載したMac
Apple Silicon チップ アーキテクチャの実験的なサポートは、node.js v15.3 で追加され、完全なサポートは v16.0 で追加されました。このため、通常どおり古いバージョンのノードをインストールしようとすると、ノードのインストール時にコンパイル エラーが発生するか、コードの実行中にメモリ不足エラーが発生する可能性があります。
したがって、v16.0 より前のバージョンを Apple Silicon Mac で実行したい場合は、Rosetta 2 がx86_64プロセッサ命令を ARM ベースの Apple Silicon 命令に変換できるように、 x86_64 Intel アーキテクチャをターゲットにノードをコンパイルするのが最善である可能性があります。行う必要があることは次のとおりです。
まだ行っていない場合は、Rosetta をインストールします
$ softwareupdate --install-rosetta
「私の Apple Silicon Mac は、Intel チップ用にコンパイルされたノードのバージョンに Rosetta を使用することをどのようにして認識するのでしょうか?」と疑問に思われるかもしれません。実行可能ファイルに Intel 命令のみが含まれている場合、macOS は自動的に Rosetta を使用して命令を変換します。
Rosetta を使用して実行中のシェルを開く
$ アーチ -x86_64 zsh
注: これと同じことは、Finder でターミナルまたは iTerm アプリを見つけて右クリックし、[情報を見る] を選択して、[Rosetta を使用して開く] というラベルの付いたボックスをチェックすることによっても実行できます。
注: この端末セッションは現在zshで実行されています。 zsh通常使用するシェルではない場合、 nvm通常のシェルの場合のように、ドットファイルを通じて自動的にsource化されない可能性があります。その場合は、必ずnvmソースにしてください。
$ソース "${NVM_DIR}/nvm.sh"興味のある古いバージョンのノードをインストールします。例として 12.22.1 を使用してみましょう。これにより、ノードのソース コードがフェッチされてコンパイルされます。これには数分かかります。
$ nvm install v12.22.1 --shared-zlib
注: --shared-zlibがなぜ含まれているのか気になるでしょう。 Apple のシステムclangコンパイラの最近のバージョンにはバグがあります。これらの壊れたバージョンのいずれかがシステムにインストールされている場合、 --shared-zlibフラグを含めなかった場合でも、上記の手順は成功する可能性があります。ただし、後で古いバージョンのnode.jsを使用して何かをnpm installうとすると、 incorrect data checkエラーが表示されます。これに対処する際に発生する可能性のある面倒な作業を回避したい場合は、そのフラグを含めてください。詳細については、この問題とこのコメントを参照してください
終了してネイティブ シェルに戻ります。
$出口$アーチ 腕64
注: 2 番目のステップで CLI コマンドを実行するのではなく、「Rosetta を使用して開く」というラベルのボックスを選択した場合は、ここにi386表示されます。そのボックスを選択しておく別の理由がない限り、ここで選択を解除できます。
アーキテクチャが正しいことを確認してください。 x64 x86_64の略語で、これが表示したいものです。
$ ノード -p プロセス.arch x64
これで、通常どおりノードを使用できるようになります。
WSL-2 でこのエラーが発生した場合:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh |バッシュ
% 合計 % 受信 % Xferd 平均速度 時間 時間 時間 現在
Dload Upload 残りの合計使用速度
0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0curl: (6) ホストを解決できませんでした: raw.githubusercontent.comウイルス対策、VPN、またはその他の理由が原因である可能性があります。
ping 8.8.8.8できるが、 ping google.comできない場合
これは、ルート ディレクトリでこれを実行するだけで簡単に解決できます。
sudo rm /etc/resolv.conf sudo bash -c 'echo "ネームサーバー 8.8.8.8" > /etc/resolv.conf'sudo bash -c 'echo "[ネットワーク]" > /etc/wsl.conf'sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.confのsudo chattr +i /etc/resolv.conf
これにより、WSL の実行時に自動的に生成されるresolv.confファイルが削除され、新しいファイルを作成してnameserver 8.8.8.8を設定し、次にwsl.confファイルを作成して[network]とgenerateResolveConf = false追加して、そのファイルの自動生成を防ぎます。ファイル。
次のコマンドを実行すると、ファイルの内容を確認できます。
猫 /etc/resolv.conf
現在、唯一のメンテナーは @ljharb です。さらに多くのメンテナーがいることは大歓迎であり、時間の経過とともにチームにメンバーを追加したいと考えています。プロジェクトの進行に応じてガバナンスが再評価されます。
最新バージョン (現時点では v0.40.1) のみがサポートされています。
nvmの最新バージョンに更新できない場合、当社のパートナーは、サポートされていないすべてのバージョンに対して商用セキュリティ修正を提供します。
HeroDevs の終わりのないサポート
LICENSE.mdを参照してください。
OpenJS Foundation およびnvm貢献者に著作権があります。無断転載を禁じます。 OpenJS Foundation は登録商標および商標を使用しています。 OpenJS Foundation の商標のリストについては、商標ポリシーと商標リストをご覧ください。 Node.js は Joyent, Inc. の商標であり、Joyent, Inc. の許可を得て使用されています。 OpenJS Foundation 商標のリストに記載されていない商標およびロゴは、それぞれの所有者の商標™ または登録商標です。これらの使用は、それらとの提携または承認を意味するものではありません。
OpenJS財団 |利用規約 |プライバシーポリシー | OpenJS 財団細則 |商標ポリシー |商標リスト |クッキーポリシー