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.3nvm run 10.17.0$ node -v これで当たっていますでしょうか?? 念のため確認お願いしたいです。

【参考サイト】

学んだこと

  • nvmについて
    • nvm(Node Version Manager)とはnodeのバージョンを管理するツール
    • GROWIはv1の開発環境でnodeのバージョンを管理していた。
    • v2ではnvmを使用していない
    • 今使ってる node は nvm の管理配下なのだろうか?を明らかにする必要がある。
  • では何がnodeのバージョンを管理するのか?
    • devContainerのDockerfileを見てみると、

↓これはmasterのDockerfileで、nodeのバージョンは14になっている Screen Shot 2020-10-06 at 18.03.26.png GROWIのバージョンを変えた時には、このnodeのバージョンは12になっていた。

解決方法

  1. Dockerのdashboardでcontainerを全部stopさせる
  2. 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は使わないでもバージョンの切り替えは出来る。