GROWIのバージョンを下げた時に、nodeのバージョンで怒られた時の対処法
BootCampで質問
issue: データアーカイブ→インポートした後、検索結果がヒットしない external_link
再現確認のためにGROWIのバージョンを下げて
yarn を実行したら、
growi@4.0.10: The engine "node" is incompatible with this module. Expected version ">=10.17.0 <13". Got "14.10.1"
nodeのバージョンが違うよという旨のエラーが出た。
なので、nodeのバージョンを下げたい。
現在のnodeのバージョンは14.10.1
node@5666cc6822c5:/workspace/growi$ node -v v14.10.1
現在のnvmのバージョンは0.35.3
です。
node@5666cc6822c5:/workspace/growi$ nvm --version 0.35.3
新しくしたいnodeのバージョンは10.17.0
。
【やろうとしていること】
以下を実行しようとしているのですが、
nvm uninstall 0.35.3
↓
nvm run 10.17.0
↓
$ node -v
これで当たっていますでしょうか??
念のため確認お願いしたいです。
【参考サイト】
学んだこと
- nvmについて
- nvm(Node Version Manager)とはnodeのバージョンを管理するツール
- GROWIはv1の開発環境でnodeのバージョンを管理していた。
- v2ではnvmを使用していない
- 今使ってる node は nvm の管理配下なのだろうか?を明らかにする必要がある。
- では何がnodeのバージョンを管理するのか?
- devContainerの
Dockerfile
を見てみると、
- devContainerの
↓これはmasterのDockerfile
で、nodeのバージョンは14になっている
GROWIのバージョンを変えた時には、このnodeのバージョンは12になっていた。
解決方法
- Dockerのdashboardでcontainerを全部stopさせる
- VScodeを開き、devContainerを立ち上げる それだけ。これで正常に起動した。
なんでうまくいかなかったのか?
元々のブランチでは、nodeのバージョンが14だが、新しいブランチではバージョンが12である。
なので、ブランチを変えた時に14が残ってしまっており、バージョンが違うよというふうに怒られた。
一旦containerをstopさせ、devContainerを起動し直したらnodeのバージョンが適応され、正常に立ち上がる。
もしnvm環境下でnodeのバージョンを変更するなら
nvm use <使いたいバージョン>
バージョンの切り替えだったらこれでいけそう(まだ試してはいない)
nvm uninstall
❌nvm uninstall 0.35.3
このコマンドは過去 nvm でインストールした Node.js をアンインストールするもの
もし、 nvm 配下で Node.js の v14.10.1 を消したいなら、
⭕️nvm uninstall 14.10.1
をするのが正解。 uninstallは使わないでもバージョンの切り替えは出来る。