gulpが動かない。久しぶりにgulpを動かしてみたら、nodeエラーが出てコンパイルできない。
原因は、nodeのバージョンが対応していなかったこと。バージョンを変更することで無事解決。
今回はその手順を紹介していきたいと思います。
#【エラー文】「node-sassはあなたの開発環境をサポートしていない」
Node Sass does not yet support your current environment
とは、「Node Sassは、現在のあなたの開発環境をサポートしていない」ということ。
「詳しくはGithubを確認するよう」にとあるので、その下のGithubのリンクをクリックしてみる。
https://github.com/sass/node-sass/releases/tag/v4.14.1
##【確認】node-sassが使用可能なnodeのバージョンをチェック
まずは、現状確認。それぞれのOSでnodeの対応バージョンが違うので、自分の環境でどのnodeのバージョンまで使用できるのかを、まずここで確認する。
私の場合は、Windows 64-bitなので、nodeのバージョンは、現在14まで対応している、とある。(2021年11月現在)
##【原因判明】自分の開発環境のNode.jsのバージョンを確認したら対応外だった
インストールしてNode.jsのバージョンを確認するには、コマンドで「node --version
」または「node -v
」と打ちます。
私の場合、v16.13.0
つまりバージョン16がインストールされているということでした。
node-sassがサポートしてるのは、先ほどGithubで確認したところバージョン14まで。
ということで、gulpでタスクを動かした際にnode-sassが動かず、エラーがかえってきていたのです。原因判明しました。
私の場合、node.jsをダウングレードしなくてはいけません。
#【対処】nvmを使ってnode.jsのバージョンを切り替える
ここから下は、私の環境においてやったnodeのダウングレードの方法を紹介します。
nvmをインストールしている人に向けた情報になります。
それ以外の方は、他の方法でnodeのバージョンを変更してください。
では、私の場合はnvmをインストールしているので、それを使ってnode.jsのバージョンを切り替えます。
nvmとは、Node.jsの管理ツールで、インストールした複数のNodeのバージョンを切り替えたりできる便利なツールです。
▼nvm(Node Version Manager)の公式Githubはこちら
https://github.com/coreybutler/nvm-windows
「複数のnodeバージョンを保持し、案件毎にバージョンを切り替えることができるのでオススメ」ということを聞き、先日インストールしたところでした。
その際、最新のnodeに更新してしまったのが原因で今回gulpが動かなくなってしまったようです。
nvmで複数のnodeのバージョンを管理しているので、インストールしている全バージョンを表示させる
コマンド「nvm list
」で、今現在、インストールしているnodeを表示させます。
*16.13.0 (Currently using 64-bit executable)
14.15.4
2つインストールしているうち、アスタリスクがついている「バージョン16」を現在使用中とのことです。
他に14がインストールされているので、こちらに切り替えれば、gulpが元のように正常に動くはずです。
nvmでエラー発生 exit status 5:文字化け
では、nvmのコマンドで切り替えます。nodeバージョンを16から14に切り替えるので
コマンド「nvm use 14.15.4
」
エラー発生です。しかも文字化けしていて、何のエラーかわかりません!!
結論からいうと、「管理者権限がありません」ということ。
やり直しです。
##管理者権限でnodeのバージョンを切り替えます
###管理者権限でターミナルを起動
「管理者として実行」を選び、ターミナルを「管理者権限」で起動しなおします。
コマンド「nvm list
」を入れて、もう一度インストールしている全node.jsのリストを表示させます。
###管理者権限でnodeのバージョンを切り替えます
では、今回は管理者権限があるのでそのままコマンド「nvm use 14.15.4
」と入れます。14と数字のところは各自切り替えたいバージョンを入れてください。
**Now using node v14.15.4(64-bit)**と出ました。うまく切り替えられたようです。
###nodeのバージョン確認する
では、念のため確認してみます。
Node.jsのバージョンを確認するには、コマンドで「node --version
」または「node -v
」
v14.15.4と出ました。nodeのバージョン切り替え成功です!
これでエラーが出ていたnode-sassが動くようになり、無事gulpが使えるようになりました。
以上、どなたかの参考になれば嬉しいです。