Pythonの環境構築と同様、WSLのUbuntuのバージョンを新しくしたので、Node.js環境を入れ直した時のメモです。
JavaScriptアプリを作った時期によって、使っているNode.jsのバージョンがまちまちなので、都度バージョンを切り替えられるよう、Node.jsバージョン管理ツール「nvm」を使ってNode.jsをインストールしてあります。
nvmとは?
Pythonのpyenvのようなもので、複数のバージョンのNode.jsをインストールして、任意にバージョンを切り替えることができます。
nvmの仕組み
pyenvと同様、$PATHが見に行く先を書き換えることにより、「node」と打った時に呼び出されるNode.jsのバージョンを切り替えます。
インストール手順
詳細は公式サイトを参照
下記を実行
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
するとホームディレクトリに「.nvm」フォルダが作成され、「.bashrc」に下記が追記されます。
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
WSLを立ち上げ直す
「.bashrc」が読み込まれて「nvm」が使えるようになります。
nvmを使ってNode.jsをインストールすると、バージョン毎にフォルダ分けされて「.nvm」配下にインストールされます。そして、nvmが状況に応じて$PATHの見に行く先を適当なバージョンのNode.jsに変えることによって、「node」と打った時に呼び出されるNode.jsのバージョンを変えています。
nvmの使用方法
インストールできるNode.jsのバージョン一覧表示
nvm ls-remote
指定したバージョンのNode.jsをインストール
例)バージョン10、8、6をインストール
nvm install 10 nvm install 8 nvm install 6
細かいバージョン番号は省略可能です。
インストールされているバージョン一覧表示
nvm ls
デフォルトのNode.jsバージョンを、指定したバージョンにする
例)デフォルトをバージョン10にする
nvm alias default 10
こうすると、WSLを立ち上げた時のバージョンが指定したものになります。
バージョンを切り替える
例)バージョン8に切り替える
nvm use 8
以降、Node.jsのバージョンが8になります。
バージョンをデフォルトに戻す
nvm use default
システムにインストールされているNode.jsを使う
バージョン名を「system」とすると、システムにインストールされているNode.jsになります。
例)システムのNode.jsをデフォルトとする
nvm alias default system
カレントディレクトリ以下でのNode.jsバージョンを、指定したバージョンにする
まず下記で「.nvmrc」ファイルに指定したいバージョンを記録しておきます。
例)バージョン6にする
echo "6" > .nvmrc
そうしておくと、「nvm use」と打つだけで、Node.jsのバージョンが「.nvmrc」に記載したものになります。
nvm use
アンインストール
nvm uninstall <バージョン>
その他
pyenvのように、ディレクトリに移動したら自動でNode.jsのバージョンが切り替わるような機能はなく、都度手動で「nvm use」して明示的に切り替える必要があります。
自動で切り替わるようなツールavnも紹介されていましたが、そこまではやらなくていいかなぁと思って使っていません。
結局TypeScriptをかませて使っているので、Node.jsのバージョン差をあまり意識したことはありませんが、メジャーバージョンアップの頻度が高過ぎるような気が…。