Udemyなどで講座によってnodeのバージョンが違ったりしてときおり不安になることがあるのと、nvm自体たまにしか使わないので備忘録を残しておきます。
環境は以下です。
OS macOS Catalina v10.15.7
バージョン管理 nvm
パッケージ管理 npm
shell zsh
nvm 公式ページ:github.com/nvm-sh/nvm
nvmのインストール
こちらのドキュメントに従ってインストールをおこないます。
cURL コマンド
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
Wget コマンド
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
実行すると、以下のように.zshrcに追記したとのことでターミナルを開き直すように言われます。 僕の場合は元々入っていたので.zshrc にすでに含まれているとのことでした。
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash return
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 15037 100 15037 0 0 143k 0 --:--:-- --:--:-- --:--:-- 151k
=> Downloading nvm from git to '/Users/xxxxxx/.nvm'
=> Cloning into '/Users/xxxxxx/.nvm'...
remote: Enumerating objects: 354, done.
remote: Counting objects: 100% (354/354), done.
remote: Compressing objects: 100% (302/302), done.
remote: Total 354 (delta 40), reused 156 (delta 27), pack-reused 0
Receiving objects: 100% (354/354), 206.98 KiB | 1.30 MiB/s, done.
Resolving deltas: 100% (40/40), done.
* (HEAD detached at FETCH_HEAD)
master
=> Compressing and cleaning up git repository
=> Appending nvm source string to /Users/xxxxxx/.zshrc
=> Appending bash_completion source string to /Users/xxxxxx/.zshrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:
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
これで、ターミナルを再起動すればすぐに使用することができます。
.zshrcの確認
.zshrc
を確認すると以下のように既存の設定の後に nvm の設定が追加されています。
PROMPT='%1~ %# '
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ドキュメントの Manual Install
「Now add these lines to your
Manual Install~/.bashrc
,~/.profile
, or~/.zshrc
file to have it automatically sourced upon login: (you may have to add to more than one of the above files)」
の下にも記載されています。
nvmの確認
$ nvm --version
0.39.1
Node.jsのインストール
バージョンを指定してインストール
$ nvm install 8.0.0 //バージョン 8.0.0 をインストール
$ nvm install v8.0.0 //バージョン 8.0.0 をインストール(上記と同じ)
$ nvm install 14.17 //バージョン 14.17.* の最新版をインストール
$ nvm install 16 //バージョン 16.*.* の最新版をインストール
nvm install node
で最新のバージョンをインストール
$ nvm install node // 最新のバージョンをインストール
nvm install --lts
で最新の LTS バージョンをインストール
$ nvm install --lts // 最新の LTS バージョンをインストール
nvm ls-remote
リモートに登録されているNode.jsのバージョンの一覧を出力することもできます。
$ nvm ls-remote
v0.1.14
v0.1.15
v0.1.16
v0.1.17
v0.1.18
v0.1.19
v0.1.20
v0.1.21
v0.1.22
v0.1.23
v0.1.24
v0.1.25
v0.1.26
v0.1.27
v0.1.28
〜 省略
以下のコマンドでnodeとnpmのバージョンを確認してみましょう。
$ node -v
v16.18.0
$ npm -v
8.19.2
nvmのaliasの設定
nvmではaliasが設定されておりnvm alias
で確認することが出来ます。
$ nvm alias
実行すると以下のように設定されているバージョンを確認することが出来ます。
$ nvm alias
default -> v16.18.0
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v16.18.0) (default)
stable -> 16.18 (-> v16.18.0) (default)
lts/ * -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.1
lts/gallium -> v16.18.1 (-> N/A)
lts/hydrogen -> v18.12.1 (-> N/A)
- default -> デフォルトの Node.js のバージョン。最初にインストールしたバージョンがデフォルトの Node.js として使用される
- iojs -> 最新バージョンの io.js
- node -> 最新バージョンの Node.js
- stable -> 非推奨バージョンを使用していた場合
使用しているv (-> 最新v)
が表示される - lts/xxxx -> コードネームが xxxx の最新の LTS バージョン
alias の default を変更・設定
一番最初にインストールしたバージョンが alias の default になります。default を変更(または再設定)するには nvm alias default
にバージョンを指定します。
$ nvm alias default 14.18.3 //alias の default をv14.18.3に変更する
aliasの設定の確認
$ nvm alias return //alias の設定を確認
default -> 14.18.3 (-> v14.18.3) //default が変更された
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v16.18.0) (default)
stable -> 16.18 (-> v16.18.0) (default)
lts/ * -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.1
lts/gallium -> v16.18.1 (-> N/A)
lts/hydrogen -> v18.12.1 (-> N/A)
Node.jsのバージョン切り替え
インストール済のバージョンを確認
nvm ls
でインストール済のnode.jsのバージョンを全て確認できます。
$ nvm ls
実行すると以下のように表示されます。
$ nvm ls
v14.21.1 // インストール済み
-> v16.18.0 // インストール済み
system
// aliasの設定
default -> v16.18.0
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v16.18.0) (default)
stable -> 16.18 (-> v16.18.0) (default)
lts/ * -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.1
lts/gallium -> v16.18.1 (-> N/A)
lts/hydrogen -> v18.12.1 (-> N/A)
現在利用しているバージョンを確認
現在利用している(アクティブ化されている) Node.js のバージョンを表示するにはnvm current
を実行します。
$ nvm current
v16.18.0
バージョンの切り替え
インストール済みのバージョンの中から任意のバージョンに切り替えるにはnvm use
を実行します。
$ nvm use 14.21.1 // v14.21.1に切り替え
Now using node v14.21.1 (npm v6.14.17)
最新の npm へアップグレード
現在利用している Node.js のバージョンでサポートされている最新の npm バージョンを取得(アップグレード)するには、nvm install-latest-npm
を実行します。
$ nvm install-latest-npm
おまけ:Bash Completionの補完
Bash Completionがあり便利です。
使用例が以下です
$ nvm use tab //タブキーを押すと以下の候補が表示される
default lts/boron lts/fermium stable v16.18.0
iojs lts/carbon lts/gallium system
lts/ * lts/dubnium lts/hydrogen unstable
lts/argon lts/erbium node v14.21.1
以下がデモです。コマンド + タブキーを押すと候補や補完が出てきます。
$ nvm use v16 tab //タブキーを押すと 16.18.0 が補完される
その他にも指定のバージョンに一時的に切り替えて実行するnvm run
があったり、
.nvmrc
というファイルで、プロジェクトのNode.jsのバージョンを指定できたりもするようです。