在用 “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:
You can reinstall the current LTS version from Node.js’ website.
You can also use nvm. For Windows, use nvm-windows.
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"