跳到主内容

Error: error:0308010C:digital envelope routines::unsupported

· 1分钟阅读

今天更新了 nodejs 到 17 以上版本,运行项目居然报错了Error: error:0308010C:digital envelope routines::unsupported,完全的错误代码如下

Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:67:19)
at Object.createHash (node:crypto:130:10)
at module.exports (D:\yirental\yirental_web\node_modules\react-scripts\node_modules\webpack\lib\util\createHash.js:90:53)
at NormalModule._initBuildHash (D:\yirental\yirental_web\node_modules\react-scripts\node_modules\webpack\lib\NormalModule.js:401:16)
at handleParseError (D:\yirental\yirental_web\node_modules\react-scripts\node_modules\webpack\lib\NormalModule.js:449:10)
at D:\yirental\yirental_web\node_modules\react-scripts\node_modules\webpack\lib\NormalModule.js:481:5
at D:\yirental\yirental_web\node_modules\react-scripts\node_modules\webpack\lib\NormalModule.js:342:12
at D:\yirental\yirental_web\node_modules\loader-runner\lib\LoaderRunner.js:373:3
at iterateNormalLoaders (D:\yirental\yirental_web\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
at iterateNormalLoaders (D:\yirental\yirental_web\node_modules\loader-runner\lib\LoaderRunner.js:221:10)
at D:\yirental\yirental_web\node_modules\loader-runner\lib\LoaderRunner.js:236:3
at runSyncOrAsync (D:\yirental\yirental_web\node_modules\loader-runner\lib\LoaderRunner.js:130:11)
at iterateNormalLoaders (D:\yirental\yirental_web\node_modules\loader-runner\lib\LoaderRunner.js:232:2)
at Array.<anonymous> (D:\yirental\yirental_web\node_modules\loader-runner\lib\LoaderRunner.js:205:4)
at Storage.finished (D:\yirental\yirental_web\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16)
at D:\yirental\yirental_web\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9

解决办法

  1. 配置 node 选项--openssl-legacy-provider

windows 环境下

set NODE_OPTIONS=--openssl-legacy-provider

mac 或者 linux 环境下

export NODE_OPTIONS=--openssl-legacy-provider
  1. 降级 nodejs 版本到 16.x 以及以下版本

使用nvm

nvm install 16.13.0