umi项目启动报错node:internal/crypto/hash:71this[kHandle] = new _Hash(algorithm, xofLen);

这篇具有很好参考价值的文章主要介绍了umi项目启动报错node:internal/crypto/hash:71this[kHandle] = new _Hash(algorithm, xofLen);。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

错误截图:

umi项目启动报错node:internal/crypto/hash:71this[kHandle] = new _Hash(algorithm, xofLen);

原因:

这是node.js 的版本问题,因为 node.js V17开始版本中发布的是OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在使用 nodejs V17以上版本后会报错。

解决方法1(推荐):

修改package.json,在相关构建命令之前加入

SET NODE_OPTIONS=--openssl-legacy-provider 

umi项目启动报错node:internal/crypto/hash:71this[kHandle] = new _Hash(algorithm, xofLen);
这种可以一劳永逸,以后直接通过npm执行scripts里面的命令即可。不管是项目迭代,还是团队开发,这种都比较有效。

解决方法2:

每次启动项目输入启动命令时,先在命令行输入SET NODE_OPTIONS=–openssl-legacy-provider, 回车后输入 再npm启动命令npm start

NODE_OPTIONS=--openssl-legacy-provider
npm start

这种做法,就是每次运行都要输入SET NODE_OPTIONS=–openssl-legacy-provider,来告诉nodejs,别使用最新的SSL3.0,还是使用以前旧版本的。

解决方法3:

就是nodejs版本回退到16版本,这样就可以直接运行了。文章来源地址https://www.toymoban.com/news/detail-509107.html

到了这里,关于umi项目启动报错node:internal/crypto/hash:71this[kHandle] = new _Hash(algorithm, xofLen);的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包