起因: 使用公司一个老项目,在进行 npm run start 时突然报错
报错原因: 因为 node.js V17版本后,发布的OpenSSL3.0,而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在升级 nodejs 版本后会报错。
解决方案
1、推荐: 修改package.json,在相关构建命令之前加入 SET NODE_OPTIONS=--openssl-legacy-provider
"scripts": {
"start": "SET NODE_OPTIONS=--openssl-legacy-provider && react-scripts start",
"build": "SET NODE_OPTIONS=--openssl-legacy-provider && react-scripts build",
},
这种方式,以后直接通过npm执行scripts里的命令即可
2、当次运行的命令窗口有效:在你当前文件的cmd命令窗口输入:SET NODE_OPTIONS=--openssl-legacy-provider, 回车后输入 npm运行命令
3、只能用最笨的方式...将node.js版本回退到16版本。这样就可以直接运行