优秀的编程知识分享平台

网站首页 > 技术文章 正文

node.jsV17版本中最近发布的OpenSSL3.0问题

nanyue 2024-08-22 17:28:34 技术文章 5 ℃

# 报错

(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",

```

#大学生编程能力##小白学编程#

最近发表
标签列表