npm run dev が上手くできない時の対処法 〜 Error: error:0308010C:digital envelope routines::unsupported 〜


はじめに

こちら自分用のメモであるためとても雑な記事です。
ただ、同じようなエラーが出た人の助けに少しでもなれば幸いです。

エラーログ

> 〇〇@1.0.0 dev
> webpack --watch

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:135:10)

原因

Nodeのバージョンが高すぎることが原因のようです

解決策

Nodeのバージョンを下げる

環境

macOS Monterey 12.1

1. Homebrewをインストール (※インストールしている方は飛ばして大丈夫です)

下記リンクからインストール可能です

2.nodenvをインストール

$ brew install nodenv
$ eval "$(nodenv init -)"

ここで一度ターミナルを再起動します。

$ curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash

成功した時のターミナルがこちら↓↓

3.取り入れたいバージョンのNode.jsをインストール

下記コマンドによってインストール可能なNode.jsのバージョンが取得できます。

$ nodenv install -l

取り入れたいバージョンを指定してNode.jsをインストールする

$ nodenv install 〇〇.〇〇.〇
$ nodenv rehash

インストールされているNode.jsのバージョンを確認する

$ nodenv versions

4.Node.jsのバージョンを切り替える

カレントディレクトリ配下で利用するNode.jsのバージョンを切り替えたい場合

$ nodenv local 〇〇.〇〇.〇

システム全体で利用するNode.jsのバージョンを切り替えたい場合

$ nodenv global 〇〇.〇〇.〇