この度新しくメインマシンをWindowsからMacに切り替えようとして、新しく一からgulp環境構築した時に出会ったエラーについて書きます。
今回は、Node.js18.12.1のバージョンをインストールしてMacBook Air (macOS Monterey ver12.6)でのお話です。
エラー文(一部抜粋)は以下です。
1 2 3 4 |
opensslErrorStack: [ 'error:********:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' |
結論から言うと、下記サイトの記事を参考にして解決しました。
https://zenn.dev/yogarasu/articles/425732ff408d06
上記サイトでは、以下のように環境変数を設定して、レガシープロバイダーに戻すことで対処しています。
1 |
export NODE_OPTIONS=--openssl-legacy-provider |
ただ、参考サイトでも言及がありますが、これは暫定的な対処法であって解決策ではないとのこと。
一応私がインストールした「18.12.1」はLTSになっているのでOpen SSL互換エラーが出るライブラリが他になければ、上記サイトのように最終的には環境変数を削除していきたいです。
でも、とりあえずはこれで。
また後で振り返られるように、エラー文の全体と他の参考サイトをもう1つ挙げておきます。
【今回のエラー文】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
[05:58:36] The following tasks did not complete: build, copyImages [05:58:36] Did you forget to signal async completion? node:events:491 throw er; // Unhandled 'error' event ^ Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:133:10) at BulkUpdateDecorator.hashFactory (/Users/...(省略).../node_modules/webpack/lib/util/createHash.js:145:18) at BulkUpdateDecorator.update (/Users/...(省略).../node_modules/webpack/lib/util/createHash.js:46:50) at RawSource.updateHash (/Users/...(省略).../node_modules/webpack-sources/lib/RawSource.js:64:8) at NormalModule._initBuildHash (/Users/...(省略).../node_modules/webpack/lib/NormalModule.js:868:17) at handleParseResult (/Users/...(省略).../node_modules/webpack/lib/NormalModule.js:934:10) at /Users/...(省略).../node_modules/webpack/lib/NormalModule.js:1026:4 at processResult (/Users/...(省略).../node_modules/webpack/lib/NormalModule.js:743:11) at /Users/...(省略).../node_modules/webpack/lib/NormalModule.js:807:5 Emitted 'error' event on Domain instance at: at emit (node:internal/process/promises:147:33) at processPromiseRejections (node:internal/process/promises:283:27) at process.processTicksAndRejections (node:internal/process/task_queues:96:32) { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' } Node.js v18.12.1 |
【もう一つ参考にしたサイト記事】