next.jsでコード書いてる時に、macを久々再起動したら
The engine “node” is incompatible with this module.
エラーがでる原因としては、next.jsのプロジェクトで必要としているnodeバージョンが18以上なのに
それ以下のv16が入っていたから。
で、nodenvとかnodebrewとかnvmとか、nodeのバージョン管理をするには色々な方法があるのだけど、
普段nodeのバージョン変更とか滅多にしないので、前どれでやったかを忘れてしまったりする。
今回は結局nvmでやりました。
最初に
自分の環境で行った手順です。
※Mac M1 13.2
環境によって変わりうる可能性もあるため、
・node.jsのバージョンがうまく変わらない
・node.jsのバージョンを変えたら、yarnが使えなくなった
時に、うまくいかない時に試す、くらいの感覚でいていただければと思います。
※また、nvmはすでに入れている前提です。
◼️nvm公式
https://github.com/nvm-sh/nvm#set-default-node-version
手順
まずは現在pcにインストールしているnvmバージョンを確認
nvm ls
今現在使いたいnodeがなければ、バージョンを指定してインストールする。
nvm install <version>
その上で、デフォルトのバージョンを指定(18とかを指定)
nvm alias default 18.xx.xx
yarnも一緒に消えた!
nvmで使うバージョンを変えた後、yarnがそのnodeには入ってないぞ!と言うエラーが出る場合があります。
その場合は下記の手順でyarnを入れておくと改善しました。
※nvmでyarnを入れる方法もあるが、それだとターミナルを再起動するたびリセットされる様子。。
brew install yarn --ignore-dependencies