ERROR Error: error:0308010C:digital envelope routines::unsupported
目次
error:0308010C:digital envelope とはroutines::unsupported
「error:0308010C:digital envelope routines::unsupported」のエラーメッセージは、Node.jsのcryptoモジュールで失敗した時に表示されます。
nodeのバージョンアップで発生するエラーになります。
error:0308010C:digital envelope routines::unsupportedのエラー原因
「error:0308010C:digital envelope routines::unsupported」のエラー原因を説明しますね。
ERROR Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:69:19)
at Object.createHash (node:crypto:133:10)
at module.exports (/Users/kami/pg/work/dev/hoge/node_modules/webpack/lib/util/createHash.js:135:53)
at NormalModule._initBuildHash (/Users/kami/pg/work/dev/hoge/node_modules/webpack/lib/NormalModule.js:417:16)
at handleParseError (/Users/kami/pg/work/dev/hoge/node_modules/webpack/lib/NormalModule.js:471:10)
at /Users/kami/pg/work/dev/hoge/node_modules/webpack/lib/NormalModule.js:503:5
at /Users/kami/pg/work/dev/hoge/node_modules/webpack/lib/NormalModule.js:358:12
at /Users/kami/pg/work/dev/hoge/node_modules/loader-runner/lib/LoaderRunner.js:373:3
at iterateNormalLoaders (/Users/kami/pg/work/dev/hoge/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
at iterateNormalLoaders (/Users/kami/pg/work/dev/hoge/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
at /Users/kami/pg/work/dev/hoge/node_modules/loader-runner/lib/LoaderRunner.js:236:3
at runSyncOrAsync (/Users/kami/pg/work/dev/hoge/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
at iterateNormalLoaders (/Users/kami/pg/work/dev/hoge/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
at Array.<anonymous> (/Users/kami/pg/work/dev/hoge/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
at Storage.finished (/Users/kami/pg/work/dev/hoge/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
at /Users/kami/pg/work/dev/hoge/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
node:internal/crypto/hash:69
this[kHandle] = new _Hash(algorithm, xofLen);
^
- 古いバージョンのNode.js: Node.jsの古いバージョンを使用している場合、新しい暗号化アルゴリズムや機能がサポートされていない可能性があります。最新の安定版にアップグレードすることで問題を解決することができます。
- 依存関係の問題: アプリケーションが使用している依存関係のうち、crypto関連のモジュールが不足している、または古いバージョンである場合、このエラーが発生する可能性があります。依存関係を更新するか、必要なモジュールを追加することで改善されます。
- 環境設定の問題: 環境設定が正しくない場合、例えば、暗号化関連の設定が不足している場合にも、このエラーが発生する可能性があります。必要な設定を行い、Node.jsアプリケーションが正しく動作するようにしてください。
対応方法1
今回エラーが出た、npmコマンドを実行しているシェル内でexportコマンドを叩くことでアプリ内に「NODE_OPTIONS=–openssl-legacy-provider」が反映されます。
export NODE_OPTIONS=--openssl-legacy-provider
ただし欠点があり、アプリやシェルを閉じると「NODE_OPTIONS」も無くなってしまうので、再度行ってください。
スポンサードサーチ
対応方法2
package.jsonに「NODE_OPTIONS=–openssl-legacy-provider」を記述して、コマンド実行時にNODE_OPTIONS変数にopenssl-legacy-providerを設定して実行します。
"scripts": {
"dev": "NODE_OPTIONS=--openssl-legacy-provider HOST=0.0.0.0 PORT=3000 nuxt dev",
"build": "NODE_OPTIONS=--openssl-legacy-provider nuxt build",
"generate": "nuxt generate",
}
対応方法3
「.zshrc」や「.bashrc」に環境変数として設定することで、デフォルトで全てのアプリケーションへ反映することができます。
リンく
欠点としては全てにアプリケーションに適用されてしまうので、旧nodeのアプリの場合だと「unset」する必要があります。
export NODE_OPTIONS=–openssl-legacy-provider によるエラー
node: --openssl-legacy-provider is not allowed in NODE_OPTIONS
「unset」でNODE_OPTIONSプロパティをリセットしてください。
unset NODE_OPTIONS
以上で解決ですね