nvm と Node.js を使ってみる
nvm って?
nvm(Node Version Manager) は Node.js のバージョンマネージャ。コマンドラインにて異なるバージョンの node を使えるようにできる。node については後述。
下記のような感じで、コマンドライン上で node の切り替えやインストールなどができるようになる。
$ nvm use 16 Now using node v16.9.1 (npm v7.21.1) $ node -v v16.9.1 $ nvm use 14 Now using node v14.18.0 (npm v6.14.15) $ node -v v14.18.0 $ nvm install 12 Now using node v12.22.6 (npm v6.14.5) $ node -v v12.22.6
nvm インストール
brew を使って nvm をインストール
% brew install nvm
nvm — Homebrew マニュアルに従い、下記を実行する。
% mkdir ~/.nvm
パスを追加するために、.zshrc
に下記を追加する
export NVM_DIR="$HOME/.nvm" [ -s "$(brew --prefix)/opt/nvm/nvm.sh" ] && \. "$(brew --prefix)/opt/nvm/nvm.sh" # This loads nvm [ -s "$(brew --prefix)/opt/nvm/etc/bash_completion.d/nvm" ] && \. "$(brew --prefix)/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
次にパスを更新するために下記を実行する。
% source ~/.zshrc % nvm -v 0.39.2 # <= nvm のバージョンが表示される
Node.js って?
Node.js は Web サーバでもなければ Rails のような Web フレームワークでもなく、JavaScript の実行環境。
JavaScript 単体では Web ブラウザ上でしか機能しないが、Node.js を用いることで、それが動作する OS の機能を(権限内で)利用できるようになる。
nvm で Node.js をインストールする
Node.js には長期サポートバージョンがあるので、それをインストールする。下記は長期サポートの最新版をインストールする際のコマンド。
% nvm install --lts % nvm ls -> v18.12.1 system default -> lts/* (-> v18.12.1) iojs -> N/A (default) unstable -> N/A (default) node -> stable (-> v18.12.1) (default) stable -> 18.12 (-> v18.12.1) (default) lts/* -> lts/hydrogen (-> v18.12.1) 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 (-> N/A) lts/gallium -> v16.18.1 (-> N/A) lts/hydrogen -> v18.12.1
最後に、~/.zshrc
に下記を追加する。
# place this after nvm initialization! autoload -U add-zsh-hook load-nvmrc() { local nvmrc_path="$(nvm_find_nvmrc)" if [ -n "$nvmrc_path" ]; then local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") if [ "$nvmrc_node_version" = "N/A" ]; then nvm install elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then nvm use fi elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then echo "Reverting to nvm default version" nvm use default fi } add-zsh-hook chpwd load-nvmrc load-nvmrc
上記をすると、.nvmrc
ファイルのあるディレクトリに入ると、自動的に nvm use
を呼び出すようになる。つまり、当該プロジェクトが動く Node.js のバージョンを判断して起動してくれるようになる。