環境
Node.js :v18.12.1
開発ツール: VsCode
プロジェクト実行時のエラーは次のとおりです。
//报错主要提示,第一行。
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 (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\util\createHash.js:145:18)
at BulkUpdateDecorator.update (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\util\createHash.js:46:50) at OriginalSource.updateHash (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\node_modules\webpack-sources\lib\OriginalSource.js:131:8)
at NormalModule._initBuildHash (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:888:17)
at handleParseResult (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:954:10)
at D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:1048:4
at processResult (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:763:11)
at D:editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:827:5 {
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
Node.js v18.12.1 //当前版本号。
理由
Node.js のバージョンが高すぎるため、Node.js V17 バージョンでリリースされた OpenSSl3.0 では、許可されるアルゴリズムとキー サイズに厳しい制限が追加され、エコシステムに影響を与える可能性があります。
node -v //cmd进入命令行输入命令,查看自己的版本号
解決:
問題に対する永続的な解決策:
最初: コマンドライン入力
$env:NODE_OPTIONS="--openssl-legacy-provider"
2 番目: 率先して Node.js のバージョンを下げます。
node.js を 16 以下のバージョンに変更します。
実際の開発では、1 つのプロジェクトのためにすべての開発者にバージョンダウンを要求するのは不合理であり、複数のプロジェクトを所有している開発者もおり、連鎖反応が発生するため、この方法は推奨されません。ここでは詳細は紹介しません。
環境変数を使用して問題を一時的に解決します: (コマンド ライン入力は管理者モードである必要があります)
第一に、Windows環境では開発ツールのターミナルには入らないこと!
コマンドラインに入力します: 入力完了後にプロジェクトを再起動します。
set NODE_OPTIONS=--openssl-legacy-provider
その2:LinuxやWSL環境では開発ツールのターミナルには入力しないでください!
export NODE_OPTIONS=--openssl-legacy-provider