ERR_OSSL_EVP_UNSUPPORTED についての最新の記事はこちら
Node.jsのバージョンをアップデートすると、Vue.js(Nuxt)アプリのビルド時にこれを言われるようになった。
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
前提・環境
- Node.js v18
- Vue 2
- Nuxt 2
解決法
一時的な解決方法
以下のコマンドを叩く。そうすればとりあえずすぐ動く。
export NODE_OPTIONS=--openssl-legacy-provider
以下のようにnpm run dev や buildの前につけるのもアリ。
開発環境の場合:
NODE_OPTIONS=--openssl-legacy-provider npm run dev
ビルドの場合:
NODE_OPTIONS=--openssl-legacy-provider npm run build
ファイルに記述する方法
.zshrcに以下を記述する
export PATH="/Users/HOGE_USER/nuxt/HOGE_PROJECT/.npm-global/bin:$PATH"
export NODE_OPTIONS=--openssl-legacy-provider
(私のPCではnuxtというディレクトリに入っているのでこう記述しています。)
sourceで反映させるのを忘れずに(忘れた)
source .zshrc
※ これ、別のプロジェクトでやったら反映しなくなりました。なんでだろう。。。
おわりに
公式によると、この記事で上げたような解決策は一時的な対応として必要だが、公式でいずれちゃんと対応してくれるらしい。