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

报错

(node:16863) [DEP_WEBPACK_CONFIGURATION_OPTIMIZATION_NO_EMIT_ON_ERRORS] DeprecationWarning: optimization.noEmitOnErrors is deprecated in favor of optimization.emitOnErrors

(Use node --trace-deprecation ... to show where the warning was created)

(node:16863) [DEP_WEBPACK_COMPILATION_OPTIMIZE_CHUNK_ASSETS] DeprecationWarning: optimizeChunkAssets is deprecated (use Compilation.hooks.processAssets instead and use one of Compilation.PROCESS_ASSETS_STAGE_* as stage option)

(node:16863) [DEP_WEBPACK_COMPILATION_NORMAL_MODULE_LOADER_HOOK] DeprecationWarning: Compilation.hooks.normalModuleLoader was moved to NormalModule.getCompilationHooks(compilation).loader

node:internal/crypto/hash:71

this[kHandle] = new _Hash(algorithm, xofLen);

^

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

at new Hash (node:internal/crypto/hash:71:19)

at Object.createHash (node:crypto:133:10)

问题原因

出现这个错误是因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响.

解决方式

运行指令前设置环境变量

复制代码
export NODE_OPTIONS=--openssl-legacy-provider 

或者修改下脚本

复制代码
  "scripts": {
    "analyze": "cross-env ANALYZE=1 umi build",
    "build": "export NODE_OPTIONS=--openssl-legacy-provider &&  umi build",
    "deploy": "npm run build && npm run gh-pages",
    "dev": "export NODE_OPTIONS=--openssl-legacy-provider &&  npm run start:dev",
相关推荐
Never_Satisfied6 小时前
在JavaScript / Node.js / 抖音小游戏中,使用tt.request通信
开发语言·javascript·node.js
顾三殇9 小时前
【Node】win 10 / win 11:node.js 长期维护版下载、安装与 npm 配置
node.js·编译工具
csj5012 小时前
前端基础之《React(4)—webpack简介-编译打包优化》
前端·react
chxii18 小时前
前端与Node.js
前端·node.js
格鸰爱童话19 小时前
node.js学习(一)
node.js
亮子AI2 天前
【NestJS】在 nest.js 项目中,如何使用 Postgresql 来做缓存?
开发语言·缓存·node.js·nest.js
EndingCoder2 天前
Node.js 数据查询优化技巧
服务器·javascript·数据库·node.js·数据查询优化
芒果Cake2 天前
【Node.js】Node.js 模块系统
javascript·node.js
_光光2 天前
大文件上传服务实现(后端篇)
后端·node.js·express
一枚前端小能手2 天前
🚀 Node.js 25重磅发布!快来看看吧
前端·javascript·node.js