当サイトは、アフィリエイト広告を利用しています
今までnode.jsをインストールして使っていたが、Next.jsを始めようとしたときに
nodeのversion違いでうまくcreate-next-appできない問題に遭遇し、
これを機にnvmでnodeのversionを管理することにしたので、導入方法をまとめる。
今回はnvm for Windowsではなくnvmを入れる。
※nvm for Windowsを入れようとしたがうまくいかなかったので...
curlコマンドを使ってnvmをインストールする。
curlはコマンドラインからhttp/httpsアクセスするためのツール。
curlのインストール確認をする。
curl --version
ない場合は入れる。
インストールはcurlからできる
理由は後述するがもしホームディレクトリ配下に.bashrcがない場合は先に作成しておく
※中身は空でok
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed100 14926 100 14926 0 0 64614 0 --:--:-- --:--:-- --:--:-- 64614=> nvm is already installed in /c/Users/lunaj/.nvm, trying to update using git=> => Compressing and cleaning up git repository=> nvm source string already in /c/Users/lunaj/.bashrc=> bash_completion source string already in /c/Users/lunaj/.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
実行後にホームディレクトリの.bashrcを確認すると下記が追記されていることを確認
# .bashrc[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
インストールできたかを下記で確認する。
$ nvm -v
おそらくnvm command not foundと出てくる。
原因としては、nvm.shはホームディレクトリ(~/配下)にインストールされているが
そこを参照できてないためだと思われる。
そのため下記のコマンドを実行すると使えるようになる
source ~/.nvm/nvm.sh
だだこれだと起動時に毎回実行する必要があるので
上記で書いた通り、毎回vscodeやterminalを立ち上げた時に
手動で実行するのは面倒なので、自動で実行されるように設定しておく。
.bash_profileはログイン時に1回だけ実行されるコマンドを設定することができる。
ホームディレクトリ(~/)配下に.bash_profileを作成する。
※既にある場合は不要。
.bashrcを読み込むコマンドを書く。
# read .bashrctest -r ~/.bashrc && . ~/.bashrc
これでログイン時に.bashrcを読むようになる。
.bashrcはシェル起動するたびに実行されるコマンドを設定することができる。
nvmのインストール前に作成した.bashrcを編集する。
source ~/.nvm/nvm.shコマンドを書く。
# .bashrcecho nvm settingsource ~/.nvm/nvm.sh[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
これでログイン時とshell起動時に「source ~/.nvm/nvm.sh」が実行されるようになる。
※.bashrcだけ設定してもいけそうな気がする。
vscodeを立ち上げれば、ターミナルに「nvm setting」と表示されれば
コマンド実行はできているのでnvm -vコマンドを実行するとnvmのversonが表示される。
$ nvm -v0.38.0
ここまででnvmのインストールと初期設定は完了!!
下記を参考にさせて頂きました。
実際にnvmを使ってnode.jsを切り替えてみる。
nvm currentで調べることができる。
$ nvm currentv16.16.0
systemと表示された場合はnvmを使わずにインストールしたNode.jsがアクティブになっている。
既にインストール済であるnodeを一覧表示する
nvm ls-> v16.16.0default -> lts/* (-> v16.16.0)iojs -> N/A (default)unstable -> N/A (default)node -> stable (-> v16.16.0) (default)stable -> 16.16 (-> v16.16.0) (default)lts/* -> lts/gallium (-> v16.16.0)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.20.0 (-> N/A)lts/gallium -> v16.16.0
見方を少し説明すると
① -> v16.16.0② default -> lts/* (-> v16.16.0)
①はアクティブなnodeのverson
②はdefaultはエイリアスのため「nvm use default」を実行するとv16.16.0に切り替わる
$ nvm ls-remotev0.1.14v0.1.15v0.1.16v0.1.17v0.1.18~省略
nvmでversionを切り替えたい場合、対象versionのnodeをインストールする必要がある
インストール方法には下記の3パターンがある
またインストールした場合、デフォルトでインストールしたversoinに切り替わる
nvm install node
nvm install --lts
nvm install 6.14.4
特に指定がなけば最新の安定版を入れておけば問題ないと思う。
nodeのインストールが失敗する場合は
nvm自体のバージョンをアップデートする。
インストールしたversionに切り替える
$ nvm use v16.16.0Now using node v16.16.0 (npm v8.11.0)
切り替わっていることを確認
$ nvm currentv16.16.0$ node -vv16.16.0
ただこのままだと、一時的に切り替わっただけであり、
再度、ログインすると切り替える前に戻ってしまう
version変更を維持したい場合はdefaultのエイリアスをつける。
$ nvm alias default 16.16.0
これでログインしなおしてもversionが維持される。
不要になったversionはアンインストールできる。
実行環境はたまっていくので不要になった場合はアンインストールした方がいい。
$ nvm uninstall nodeUninstalled node v18.7.0
- nodeはv18.7.0のエイリアス
nvmの存在自体は知っていたが、今まで特にnodeのversionで問題が出たことがなかったので
使うこともなかったが,今回インストールしたnodeのversionとは違うversionのプロジェクトを作成する
必要があり調べてみた。
ただインストールしただけでは動かなかったので少しはまってしまったが
おかげで.bash_profileや.bashrcの知識も増えたので結果的にはよかったと思う
下記を参考にさせて頂きました。
Gatsby製の当ブログ開発時は下記の書籍の
特典のセットアップPDFにnvmの設定方法を参考にしました
もしGatsbyで開発をするならお勧めです!