一开始node版本是18.16.0
npm install
发现安装依赖成功
npm start
发现启动出错
node:internal/crypto/hash:71this[kHandle] = new _Hash(algorithm, xofLen);^Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:71:19)at Object.createHash (node:crypto:133:10)
具体原因
这是node.js 的版本问题,因为 node.js V17开始版本中发布的是OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在使用 nodejs V17以上版本后会报错。
解决方法
切换node版本
切换node版本为16.16.0。
删除node_modules文件夹,重新安装依赖
npm install
# 执行启动命令
npm start
访问链接即可访问了。
附加
另一个解决方法,在每次执行启动时输入以下命令
NODE_OPTIONS=--openssl-legacy-provider
npm start