みかづきブログ・カスタム

基本的にはちょちょいのほいです。

Node.jsを14.Xから18.Xまでバージョンアップしたら Error: error:0308010C:digital envelope routines::unsupported となった 😱


昔つくったNext.jsのプロジェクトを久しぶりに修正しようと思ったのですが、.node-versionが14.21.3でした。
流石に14は古すぎるので、18.17.1までバージョンアップし、

yarn dev

を実行したところ、

Error: error:0308010C:digital envelope routines::unsupported

と、エラーが発生しました。

調べてみると、OpenSSL周りの変更が原因のようで、回避策もいろいろ見つかったのですが、僕の場合、ncuを使って、すべてのパッケージを一括でアップデートしたら運良く解決しました。
一通り挙動も確認しましたが、問題なさそうです。
Next.jsは、11.0.1から13.4.19までアップデートされたのですが、2バージョン上がってよく動いたなという印象です。

blog.kimizuka.org

おそらく、古いパッケージの中に古いOpenSSLを使っているものが混ざっていて、アップデートした際に解決したんだと思われます。