久しぶりにブログのCSSを更新しようとしたらエラーが出た

ブルースクリーンのイラスト
そんなに劇的に環境変わったはずはないんだけど何でしょう






エラーはこんな感じ

$ gulp styles
Error: Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime (111)
For more information on which environments are supported please see:
https://github.com/sass/node-sass/releases/tag/v4.14.1
   at module.exports (www\understrap-child\node_modules\node-sass\lib\binding.js:13:13)
   at Object. (www\understrap-child\node_modules\node-sass\lib\index.js:14:35)
   at Module._compile (node:internal/modules/cjs/loader:1159:14)
   at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
   at Module.load (node:internal/modules/cjs/loader:1037:32)
   at Module._load (node:internal/modules/cjs/loader:878:12)
   at Module.require (node:internal/modules/cjs/loader:1061:19)
   at require (node:internal/modules/cjs/helpers:103:18)
   at Object. (www\understrap-child\node_modules\gulp-sass\index.js:166:21)
   at Module._compile (node:internal/modules/cjs/loader:1159:14)


なんか知らんけど「お前のOSサポートしてないかんな」といわれてます。どういうことなんや……とりあえず、エラーメッセージ内で「https://github.com/sass/node-sass/releases/tag/v4.14.1」を見ろっていわれてるので見ましょう。






Windows 64bitは……「Node 14」までしか対応してませんね。マジか。



Nodejsを一時的にダウングレードしましょう

仕方がないのでNodejsのバージョンを一時的に14.xに変更します。複数のバージョンを切り替えられるnvmを使うと楽です。

Node.jsの管理ツール、nvmをインストールする – CLOVER🍀

nvmインストール後は、こんな感じ。

あ、その前にここでポイントが2つあります。


1. nvmコマンドは管理者権限で実行しましょう

普通に実行すると exit status 5 っていうエラーが出ます。これを回避するには管理者権限で実行する必要があります。ターミナルを管理者権限で起動しましょう。

Windows ターミナル FAQ | Microsoft Learn


2. nodejsディレクトリがあったら削除しておきましょう

  • C:\Program Files\nodejs
  • C:\Program Files (x86)\nodejs

いずれかがあると exit status 145 というエラーが出ます。削除しておきましょう。

nvm useでexit status 145になった時の解決方法 – kdnakt blog



改めてダウングレード

# nvm install 14
# nvm use 14.20.1
# gulp styles
# nvm use 19.0.0


コマンドの意味は、


  1. Nodejs 14系をインストールする
  2. Nodejs 14.20.1 に切り替える
  3. CSSをコンパイル
  4. Nodejs 19.0.0 に切り替える(最新バージョンに戻す)


これで無事、CSSのコンパイルが出来ました。良かった良かった。



ちなみに最新バージョンでも

いつもこれだとしんどいなと思ってnode-sassの最新バージョンを見てみたんですけど、対応状況はこんな感じでした。






17までしか対応してねーーーーまあ仕方ないですね。nvmがあって良かった。