node版本过高,项目无法启动

2024年05月11日 09:37  ·  阅读 478

问题描述

在用 “npm run start” 启动项目时出错,错误提示见示例代码。
nodejs版本:Node.js v17.0.1
npm版本:8.1.0

示例代码

node:internal/crypto/hash:67
this[kHandle] = new _Hash(algorithm, xofLen);
^
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:67:19)
at Object.createHash (node:crypto:130:10)
at BulkUpdateDecorator.hashFactory (D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:184154:18)
at BulkUpdateDecorator.update (D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:184055:50)
at OriginalSource.updateHash (D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack-sources2\index.js:1:51038)
at NormalModule._initBuildHash (D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:115961:17)
at handleParseResult (D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:116027:10)
at D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:116119:4
at processResult (D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:115836:11)
at D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:115900:5
at D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:35132:3
at iterateNormalLoaders (D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:34958:10)
at Array. (D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:34949:4)
at runCallbacks (D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:24341:15)
at D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:24514:4
at D:\0.ceshi_ant\myapp\node_modules@umijs\deps\compiled\webpack\5\bundle5.js:33829:16 {
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
Node.js v17.0.1

解决方法

You can try one of these:

  1. Node.js降版本 Node.js v16.

You can reinstall the current LTS version from Node.js’ website.

You can also use nvm. For Windows, use nvm-windows.

  1. Enable legacy OpenSSL provider.

On Unix-like (Linux, macOS, Git bash, etc.):

export NODE_OPTIONS=--openssl-legacy-provider

On Windows command prompt:

set NODE_OPTIONS=--openssl-legacy-provider

On PowerShell:

$env:NODE_OPTIONS = "--openssl-legacy-provider"

参考文档:

https://stackoverflow.com/a/69699772

评论
全部评论