Nodejsのバージョンをv8→v15に変更して色々戸惑ってる話


半ば自分へのメモも兼ねて。

Nodejsのv15が出ていた……

二週間遅れぐらいでNodejsの新バージョンを知りました。
半年毎にメジャーバージョンアップとか判断が早い……。
https://nodejs.org/en/blog/release/v15.0.1/

せっかくなのでNuxtJSを動かしてみる

とりあえずnodebrewで新バージョン入れて切り替え。
windowsのwslでやってます。

nodebrew install v15
nodebrew use v15

で、手元のNuxt(v2.12)でサクッと実行。

npm run dev

▼ ▼ ▼

Error: Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (88)

まぁそうなるなー。
作業中に入れたnode-sassが合ってない感じ?

手抜きせずにちゃんとupdateしましょう

nodeモジュールの更新が必要なんでしょ?

npm update

これで最新にして、再度デブ実行。

Error: Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (88)

さっきも見た。

「npm update」だけじゃメジャーバージョンアップには対応しない

そうですよね……そのためのpackage.jsonですよね……。
気を取り直してバージョン確認・更新。

// 気軽にnode-sass更新しようとしたらエラー出た
npm ERR! peerOptional node-sass@"^4.0.0" from [email protected]
npm ERR! node_modules/sass-loader
npm ERR!   dev sass-loader@"^8.0.0" from the root project

// ちゃんとsass-loaderも更新します
npm install [email protected]
npm install [email protected]

今度は通った!
node-sassとsass-loaderの依存関係って海外Q&Aがあった。
依存の依存とか、そういうケースもあるのですね。
バージョン落とさない方向の解決助かる……。
https://stackoverflow.com/questions/64625050/error-node-sass-version-5-0-0-is-incompatible-with-4-0-0

そして肝心のnuxtのランデヴー。

npm run dev

こちらも問題無し!
中身の理屈は置いといて、使うだけなら問題解決かな。

残る問題

npm run dev動いたから一安心と、実行を停止しようと「Ctrl+c」すると

npm ERR! command failed
npm ERR! signal SIGINT
npm ERR! command sh -c nuxt

えぇ……

いちおうnpm7によるものっぽいけど、対応策っぽい部分読めない……。
https://github.com/npm/cli/issues/2124