AIイノベーションズ

Node.jsのERR_OSSL_EVP_UNSUPPORTED問題の解決方法

Node.jsアップデート後に発生する「ERR_OSSL_EVP_UNSUPPORTED」エラーを簡単に解決する方法を解説。Vue/Nuxtプロジェクトですぐに開発を再開できます。

Node.jsのバージョンをアップデートすると、Vue.js(Nuxt)アプリのビルド時にこれを言われ、npm run devが失敗するようになってしまいました。

opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'

環境

  • Apple Silicon (M1)
  • macOS Venture
  • Node.js v18.20.0
  • Vue 2.6.14
  • Nuxt v2.15.8

2つの解決方法

(1) 一時的な解決方法

以下のコマンドを叩くと、とりあえずすぐ動きます。

export NODE_OPTIONS=--openssl-legacy-provider

また、package.json に追加しておくのも良いでしょう。

"scripts": {
    "build": "node --openssl-legacy-provider npm run build"
}

私はNuxt v2環境なので、package.json を以下のように記述しました。scriptsのdevとbuildを変更しました。

"scripts": {
  "dev": "NODE_OPTIONS=--openssl-legacy-provider nuxt",
  "build": "NODE_OPTIONS=--openssl-legacy-provider nuxt build"
}

これで、ふつうに npm run dev しても動作するようになりました。

(2) 本質的な解決方法: Node.jsの最新版へのアップデート

Node.jsを最新版にアップデートすると解決するようです。(試していません)

しかし、そんなに簡単にアップデートするわけにはいかない事情もあるでしょうから、package.jsonにビルドコマンドに入れておくのが良いかもしれません。

以上です!

On this page