Node.jsをインストールしたり、既にインストール済みのNode.jsを最新の安定版にアップデートしたり、バージョンを変更したりする便利ツールとしてnvmがあります。
nvmとは何か?やnvmを使ってNode.jsのバージョンを管理する方法についてまとめています。
なお、Node.jsのパッケージ管理ツールであるnpm(node package manager)は、Node.jsにバンドルしているので、Node.jsのバージョンを切り替えれば、npmもそれに合わせて最新版などに切り替わります。
nvmとは何か?
nvmとはNode.jsのバージョンを管理するためのツールです。Node Version Managerの略です(そのままの意味)。
MacとWindowsのどちらでも使うことができます。(サポートプラットフォームはUNIX、macOS、WindowsWSL)
OpenJS Foundationという組織で運用されています。
nvmでできること
nvmではNode.jsのインストールやバージョンアップに関することがほとんどできます。
- Node.jsのインストール
- 最新版
- 最新の安定版
- 過去のバージョン(バージョンを指定)
- Node.jsのアップデート
- 最新版
- 最新の安定版
- バージョンを指定
WEBサイト上のコードをコピペして使うと古いNode.jsがインストールされてしまうこともあります。バージョンが古いと本来使えるはずのツールが使えなかったり、不本意なエラーが発生することがあります。
また、その逆も然りで、Node.jsのバージョンが新しすぎると対応しきれていないパッケージでエラーが発生することもあります。
こういった症状を改善するのに役立つのがnvmです。
nvmのインスール
nvmのインストールはコマンドで簡単にできます。なお、インストールする方法は3つあります。
curlとwgetによるインストール
curlとwgetはどちらもやることは同じで、github上で公開されているnvmインストール用のシェルを取得して実行します。
curlもwgetのどちらも指定したURLをダウンロードできるコマンドです。両者の違いはサポートしているプロトコルや再起的にダウンロードするかなどです。
どちらも無料のソフトウェアです。macなどインストール済みのこともありますが、Windowsなどインストールされていないものもあります。
その場合は、コマンドラインか公式サイトからファイルをダウンロードすることで簡単にインストールできます。
curlコマンドを使う
$ curl --version
curl 7.64.1 (x86_64-apple-darwin19.0) libcurl/7.64.1 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.39.2
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
「-o-」が何をしているかについてはこちらをご参考。
wgetコマンドを使う
$ wget --version
GNU Wget 1.21.1 built on darwin19.6.0.
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
「-qO-」が何をしているかについてはこちらをご参考。
これらのコマンドを実行するとinstall.shファイルをダウンロードして実行します。
インストールの実例
curlを使ってインストールを実行した結果は次のようになります。
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 14926 100 14926 0 0 171k 0 --:--:-- --:--:-- --:--:-- 171k
=> Downloading nvm from git to '/Users/.nvm'
=> Cloning into '/Users/.nvm'...
remote: Enumerating objects: 347, done.
remote: Counting objects: 100% (347/347), done.
remote: Compressing objects: 100% (295/295), done.
remote: Total 347 (delta 39), reused 163 (delta 27), pack-reused 0
Receiving objects: 100% (347/347), 203.77 KiB | 4.33 MiB/s, done.
Resolving deltas: 100% (39/39), done.
* (HEAD detached at FETCH_HEAD)
master
=> Compressing and cleaning up git repository
=> Appending nvm source string to /Users/.bashrc
=> Appending bash_completion source string to /Users/.bashrc
=> 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
ホームディレクトリ直下に .nvm(~/.nvm)を作成します。そして~/.bashrcファイルに処理を書き込みます。(もしくは~/.bash_profile, ~/.zshrc, ~/.profile,)
git経由で取得する
git経由で取得するにはgithubのレポジトリをクローンファイルを指定して実行する方法です。curlやwgetよりも手間がかかります。
#nvmのレポジトリをクローンしたいディレクトリ移動してから実行
git clone https://github.com/nvm-sh/nvm.git .nvm
#ディレクトリ移動
cd ~/.nvm
#v0.38ブランチにチェックアウト
git checkout v0.38.0
#シェルスクリプトを実行
. ./nvm.sh
インストールできたか確認する
インストールできたか確認するためにnvmコマンドを実行します。その前に~/.bashrcなど設定を書き込んだファイルをsourceコマンドでリロードする必要があります。
bash: source ~/.bashrc
zsh: source ~/.zshrc
ksh: . ~/.profile
上記の例では、.bashrcに書き込んでいるので、source ~/.bashrc
を実行します。次にnvm -v
でバージョンが表示されたらインストールは正しくできています。
$ nvm -v
0.38.0
nvm自体のアップデート
nvm自体をアップデートする方法は大きく2つあります。
- nvmのgithabの公式ページで最新のバージョンをダウンロードする
- git経由でダウンロードする。
1のnvmのgithabの公式ページで最新のバージョンを確認する方法は、nvmのgithubサイトにアクセスして、上記のcurlやwgetで最新版をダウンロードします。
方法はインストールと同じです。
git経由でダウンロードする
git経由で最新版がリリースされているかを確認しアップデートするには、以下コマンドを実行します。
(
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.jsのアップデート
nvmのインストールが完了したら、node.jsのアップデートを簡単に実行することができます。
node.js最新版のインストール
nvm install node
node.js最新の安定版をインストール
nvm install --lts
ltsはLongーTerm Supportの略で長期サポート版のことです。
node.jsのバージョンを指定してインストール
インストール可能なバージョン一覧の表示
nvm ls-remote でインストール可能なバージョン一覧を表示することができます。
$ nvm ls-remote
v0.1.14
大幅に省略
v16.4.0
v16.4.1
$
node.jsのバージョンを指定してインストール
nvm install <バージョン> でnode.jsのバージョンを指定してインストールすることができます。
nvm install 6.14.4
指定したnodeのバージョンを使う
使いたいnodeのバージョンを指定するには nvm use <バージョン> を実行します。
nvm use 6.14.4
インストール済みのnodeのバージョン一覧を表示
nvm ls でインストール済みのnodeのバージョン一覧を表示することができます。