nvm
はノードのバージョンを忘れ、デフォルトでは何もしません。$ nvm ls
:
.nvm
v0.11.12
v0.11.13
すべてのセッションでnvm use v.0.11.13
を押し続ける必要があります。
.nvm
v0.11.12
-> v0.11.13
私はbrew
インストールと公式のインストールスクリプトの両方を試しました。
私の.profile
ブリューバージョン用:
#nvm
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
そしてinstall.shスクリプトの場合:
$ curl https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | bash
#nvm
export NVM_DIR="/Users/farhad/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
nvm alias default
を試してください。例えば:
$ nvm alias default 0.12.7
これにより、シェルのデフォルトのノードバージョンが設定されます。次に、Shellウィンドウを閉じて新しいウィンドウを開いて、変更が持続することを確認します。それから、node --version
後でノードバージョンが更新されるとともにデフォルトのエイリアスが更新されないようにするため、node
自体にエイリアスを設定します。
nvm alias default node
最新の安定版をインストールするには:
nvm install stable
デフォルトを(特定のバージョンではなく)安定バージョンに設定するには、次の手順を実行します。
nvm alias default stable
インストールされているバージョンを一覧表示するには
nvm list
v6.2.0
の時点では、次のようになります。
$ nvm list
v4.4.2
-> v6.2.0
default -> stable (-> v6.2.0)
node -> stable (-> v6.2.0) (default)
stable -> 6.2 (-> v6.2.0) (default)
iojs -> N/A (default)
nvmはPATH変数を変更することによってその仕事をするので、あなたはあなたがnvm.shスクリプトを供給した後にあなたがどうにかあなたのPATHを他の何かに変更していないことを確かめる必要があります。
私の場合は、nvm.shが.bashrcで呼び出されていましたが、その後PATH変数が.bash_profileで更新されていたため、セッションはnvmノードより前にシステムノードを見つけることができました。
私の場合、別のプログラムがPATH
の変更を.bashrc
に追加しました
他のプログラムがPATH
after nvmの初期化を変更した場合、nvmのPATH
の変更は忘れられ、システムノードはPATH
上になります(またはノードなし)。
解決策は、nvmの設定を.bashrc
のbottomに移動することでした
### BAD .bashrc ###
# NVM initialisation
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"
溶液:
### GOOD .bashrc ###
# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"
# NVM initialisation
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
(これはCentOS上のbash 4.2.46のものでした。bashのバグのように思えますが、私は間違っているかもしれません。)
最高と評価された解決策は私にとってうまくいかないようでした。私の解決策は以下の通りです。
brew uninstall nvm
brew install nvm
を再インストールしますターミナルで、以下の手順に従います(これらは、homebrew経由でnvmをインストールするときにも表示されます)。
mkdir ~/.nvm cp $(brew --prefix nvm)/nvm-exec ~/.nvm/ export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh
上記の手順は、NVMの作業ディレクトリを$ HOMEパスに追加し、nvm-execをNVMの作業ディレクトリにコピーして、$ HOME/.bashrc、$ HOME/.zshrc、またはシェルの同等の設定ファイルに追加します。 homebrewを使用してNVMインストールにリストされている)
あなたはまだすべての運を試してみたなら、あなたはこれを試すことができます:_
1 - > NVMのアンインストール
rm -rf ~/.nvm
2 - >次のようにしてnpm依存関係を削除する this
3 - > NVMのインストール
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
4 - > ~/.bash_profile
設定を設定する
Sudo nano ~/.bash_profile
を実行する
これに続いてコピー&ペースト
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
5 - > CONTROL + X
変更を保存する
6 - > . ~/.bash_profile
を実行する
7 - >これであなたのマシンにはnvm
がインストールされているはずです。node run nvm install v7.8.0
をインストールするにはこれがデフォルトのノードバージョンになるでしょう。
この質問はOSXについて言及しましたが、それは私のLinux OSで私に起こりました。私はnvm alias default <version>
を使用しようとしました、しかし、それぞれの新しいターミナルセッションのために使われたノードバージョンは忘れられていました。だから、ここで私が考え出した解決策です。
ノードバージョン にデフォルトのエイリアスを必ず設定し、次のコードを.bashrcに入れてsource .bashrc
にしてください。
export NVM_DIR="/home/bonnie/.nvm"
## If the file exists and is not empty
if [ -s "$NVM_DIR/nvm.sh" ]; then
## Source it
source "$NVM_DIR/nvm.sh"
fi
NODE_DEFAULT_VERSION=$(<"$NVM_DIR/alias/default")
export PATH="$NVM_DIR/versions/node/$NODE_DEFAULT_VERSION/bin":$PATH
任意のバージョンをインストールした後にこれを実行してください。
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; Sudo cp -r $n/{bin,lib,share} /usr/local
このコマンドは、nvmを介してアクティブにしたノードのバージョンを/ usr/local /ディレクトリにコピーし、すべてのユーザーがそれらにアクセスできるように権限を設定します。
私はここで新しい方法を見つけました。 n
対話的にあなたのNode.jsを管理する を使用してください。
たとえば、nvm install 10.14
を実行すると、現在のシェルセッションのそのバージョンがnvm use
になりますが、notは常に、将来のセッションのデフォルトとして設定されます。新しいシェルセッションで取得するノードのバージョンは、nvm alias default
によって決定されます。紛らわしいことに、nvm install
は、デフォルトのエイリアスがまだ設定されていない場合にのみ設定します。期待される動作を得るには、次を実行します。
nvm alias default ''; nvm install 10.14
これにより、そのバージョンがダウンロードされ、現在のセッションで使用されますおよび将来のセッションのデフォルトとして設定します。
この問題と長い間対立した後、私はそれを修正する方法を見つけました。問題の段階的な解決策は次のとおりです。
ターミナルを開き、コマンドライン開発者ツールをインストールします。
xcode-select --install
Enterを押す
NVMの最新バージョンをインストールします。
cd ~/
Enterを押す
git clone https://github.com/creationix/nvm.git .nvm
以前に.nvmフォルダーを既に作成した場合、次のエラーメッセージが表示されます。
fatal: destination path '.nvm' already exists and is not an empty directory.
それ以外の場合は、クローン作成プロセスが完了するまで実行されます。
最新のNVMバージョンを確認してください。
cd ~/.nvm
Enterを押す
git checkout v0.34.0
次のような応答が返されます。
HEAD is now at 3d9c31d v0.34.0
バージョンはシステムによって異なる場合があります。
ls
Enterを押す
. nvm.sh
Enterを押す
nvm list
Enterを押す
マシンにインストールされているさまざまなノードバージョンが表示されます。エラーが発生している可能性がありますが、注意を払ってはいけません。
nvm ls-remote | tail -n9
Enterを押す
nvm list
Vimを使用してbashを開きます。
vim ~/.bash_profile
Vimエディター内でi
を押してINSERT mode
を入力し、新しい行を開始します。編集時に間違いがある場合は、ESC
キーを押してから:q!
を押して保存せずに終了します。
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
ファイルの編集が終了したらESC
キーを押します(INSERTモードが消えます)。
:wq
を押してファイルを保存します。Enterを押す
nvm ls-remote | tail -n9
Enterキーを押して、提示された最新のnvmバージョンをインストールします。
nvm install 12.6.0
プロセスが終了すると、次のように表示されます:Now using node v12.6.0 (npm v6.9.0)
次を押して、インストールが成功したかどうかを確認できます。
node -v
またはnpm -v
、システムにインストールされているnvmとnpmの両方のバージョンが表示されます。
ベース:最新のNodeバージョンマネージャーNVMをインストールし、macOS Mac OS XにNodeとNPMをインストールする方法 =
SDKMANもお持ちの場合...
どういうわけか、SDKMANはNVMと競合していました。あなたがこれであなたの賢明な終わりにいて、まだそれを理解できない場合、私はSDKMANから「これはATファイルの終わりでなければなりません...」を無視することによってそれを修正しましたその後のNVM行。
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/Users/myname/.sdkman"
[[ -s "/Users/myname/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/myname/.sdkman/bin/sdkman-init.sh"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
$ nvm alias default {NODE_VERSION}
上記のコマンドを使用する場合、ノードバージョンのみを更新しますが、npm
は引き続き古いバージョンを使用します。
node
とnpm
の両方を更新するための別のソリューションがあります。私の場合、ノード8.9.4
を使用し、以下のコマンドを使用しました。
$ nvm use default 8.9.4
そして、コマンドは出力を返します。
現在、ノードv8.9.4(npm v5.6.0)を使用しています