イントロ
について
インストールとアップデート
追加メモ
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 ~/
を追加するか、以下の次の手順に従うことで修正できます。
正しい 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
)、(2) 新しく作成したノードのバージョンを削除します ( nvm uninstall
)、(3) --latest-npm
フラグを使用してnvm install
再実行します。
新しいバージョンをインストールするたびにインストールしたいデフォルト パッケージのリストがある場合は、それもサポートします。パッケージ名を 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 つの
( 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}" = 'N/A' ];それから 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" set -l nvmrc_node_version (nvm バージョン (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 はデフォルトの 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='some/パス'
環境変数:
$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.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
v0.12.7
v6.2.1
開いて実行して実行します:!node -v
実行する必要があります:
sudo chmod ugo-x/usr/libexec/path_helper
Dotphiles/Dotzshのこの問題については詳細。
NVMはNPM構成「プレフィックス」オプションと互換性がありません
この問題のいくつかの解決策はここにあります
この問題を引き起こすもう1つのエッジケースがあります。これは、 $HOME
PathとユーザーのHome Directoryの実際の名前との間の不一致です。
$HOME
のユーザーディレクトリ名と、実行中のls /Users/
から表示されるユーザーディレクトリ名が同じように大文字であることを確認する必要があります(この問題を参照)。
ユーザーディレクトリおよび/またはアカウント名を変更するには、こちらの指示に従ってください
HomebrewはZSHディレクトリを安全にします
Zsh Compinit:不安定なディレクトリ、リストのCompauditを実行します。 不安定なディレクトリを無視し、[y]を継続するか、[n]を中止しますか? y
HomeBrewは/usr/local/share/zsh/site-functions
および/usr/local/share/zsh
などの安全なディレクトリを引き起こします。これはnvm
問題ではありません- それは自家製の問題です。問題に関連するいくつかのソリューションについては、こちらを参照してください。
Appleシリコンチップを備えたMac
Appleシリコンチップアーキテクチャの実験的サポートがnode.js v15.3に追加され、完全なサポートがv16.0に追加されました。このため、通常どおりNodeの古いバージョンをインストールしようとすると、おそらくコードの実行中にノードをインストールするときにコンピレーションエラーまたはメモリ外エラーをインストールする場合は、おそらく発生します。
したがって、Apple Silicon MacでV16.0の前にバージョンを実行する場合は、 x86_64
Intelアーキテクチャをターゲットにしたノードをコンパイルして、Rosetta 2がx86_64
プロセッサの指示をアームベースのApple Siliconの指示に翻訳できるようにすることをお勧めします。これがあなたがする必要があることです:
まだ行っていない場合は、ロゼッタをインストールしてください
$ software-update -install-rosetta
「Apple Silicon Macは、Intelチップ用にコンパイルされたノードのバージョンにRosettaを使用することをどのように知っているのでしょうか?」実行可能ファイルにIntelの命令のみが含まれている場合、MacosはRosettaを自動的に使用して命令を翻訳します。
Rosettaを使用して実行されているシェルを開きます
$ arch -x86_64 zsh
注:この同じことは、FinderでターミナルまたはITERMアプリを見つけ、右クリックし、「情報を取得」を選択し、「Rosettaを使用して開く」というラベルの付いたボックスをチェックすることでも実現できます。
注:この端末セッションは現在zsh
で実行されています。 zsh
通常使用するシェルではない場合、 nvm
おそらくあなたのドットファイルを介して通常のシェルのように自動的にsource
ではないかもしれません。その場合は、必ずnvm
調達してください。
$ source "$ {nvm_dir}/nvm.sh"
興味のあるノードの古いバージョンをインストールしてください。例として12.22.1を使用しましょう。これにより、ノードソースコードを取得してコンパイルします。これには数分かかります。
$ nvmインストールv12.22.1-shared-zlib
注:おそらく、なぜ--shared-zlib
が含まれているのか興味があります。 Appleのシステムclang
コンパイラの最近のバージョンにはバグがあります。これらの壊れたバージョンのいずれかがシステムにインストールされている場合、 --shared-zlib
フラグが含まれていなくても、上記のステップはまだ成功する可能性があります。ただし、後で、node.jsの古いバージョンを使用して何かをnpm install
とすると、 incorrect data check
エラーが表示されます。これに対処する可能性のある手間を避けたい場合は、そのフラグを含めてください。詳細については、この問題とこのコメントを参照してください
ネイティブシェルに戻ります。
$ exit $ arch ARM64
注:2番目のステップでCLIコマンドを実行するのではなく、「Rosettaを使用して開く」というラベルの付いたボックスを選択した場合、 i386
ここに表示されます。そのボックスを選択する別の理由がない限り、あなたは今それを解放することができます。
アーキテクチャが正しいことを確認してください。 x64
x86_64
の略語であり、これが見たいものです。
$ node -p process.arch x64
これで、通常どおりノードを使用できるはずです。
WSL-2でこのエラーが発生した場合:
curl -o- https://raw.githubusercontent.com/nvm/nvm/v0.40.1/install.sh |バッシュ %合計%受信%xFerd平均速度時間時間電流 Dload Upload Total Total seplest Speed 0 0 0 0 0 0 0 0 0 - : - : - 0:00:09 - : - : - 0CURL:(6)ホストを解決できなかった:raw.githubusercontent.com
これは、ウイルス対策、VPN、またはその他の理由が原因である可能性があります。
ping google.com
できない間、 ping 8.8.8.8
できる場所
これは、ルートディレクトリでこれを実行することで単純に解決できます。
sudo rm /etc/resolv.conf sudo bash -c 'echo "nameserver 8.8.8.8"> /etc/resolv.conf'sudo bash -c' echo "[network]"> /etc/wsl.conf'sudo bash -c 'echo "generateolvconf = fals >> /etc/wsl.conf'sudo chattr +i /etc/resolv.conf
これにより、WSLを実行し、新しいファイルを作成し、 nameserver 8.8.8.8
を配置すると自動的に生成されるresolv.conf
ファイルが削除され、 wsl.conf
ファイルを作成し、 [network]
およびgenerateResolveConf = false
を追加して、それの自動生成を防ぐためにfalseファイル。
実行して、ファイルの内容を確認できます。
cat /etc/resolv.conf
現在、唯一のメンテナーは@ljharbです - メンテナーが増えることは大歓迎です。時間の経過とともにチームに人々を追加したいと考えています。プロジェクトが進化するにつれて、ガバナンスは再評価されます。
最新バージョン(現時点ではv0.40.1)のみがサポートされています。
nvm
の最新バージョンに更新できない場合、当社のパートナーは、サポートされていないすべてのバージョンに商業セキュリティ修正を提供します。
ヘロデフは終わりのないサポート
license.mdを参照してください。
Copyright OpenJS Foundationおよびnvm
寄稿者。無断転載を禁じます。 OpenJS Foundationは、商標を登録し、商標を使用しています。 OpenJS Foundationの商標のリストについては、当社の商標ポリシーと商標リストをご覧ください。 Node.jsはJoyent、Inc。の商標であり、許可を得て使用されています。 OpenJS Foundation Trademarksのリストに示されていない商標とロゴは、それぞれの所有者のTradeMarks™またはRegistered®商標です。それらの使用は、それらとの提携または承認を意味するものではありません。
OpenJS Foundation |利用規約 |プライバシーポリシー | OpenJS Foundation細則|商標ポリシー|商標リスト|クッキーポリシー