📌
node18系へのバージョンアップのエラー対応【webpack】
エラー内容
error:0308010C:digital envelope routines::unsupported
webpack.mix.jsを使用している案件にて、node.jsのバージョンを16.0.0→18.19.1にアップデート。
node.jsのバージョンをアップデートし、npm installしようとしたところ、上記のエラーが出て動かない😢
原因
node.jsの17系以降では、OpenSSLライブラリのバージョンが3.0に変更になっている。
他のライブラリで使用しているOpenSSLのバージョンが古い場合に、起きてしまうエラーのよう。
対応
対応としては下記の2通り。
方法①:古いバージョンのOpenSSLを使用しているパッケージをアップデート
私はこちらで解消できました(面倒だったので全部一括でパッケージをアップデートしました
方法②:古いバージョンのOpenSSLを使用するよう、package.jsonで指定する
$ export NODE_OPTIONS=--openssl-legacy-provider
下記の記事で詳しく解説されています。
※ただ、セキュリティ的にはあまり推奨されていない模様
参考
Discussion