更新到node18之后,运行之前的项目报错;上网查了一下,说是因为 node17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。
解决办法就是修改package.json。
"scripts": {
- "dev": "vue-cli-service serve",
- "build": "vue-cli-service build",
+ "dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
+ "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
}
中文大概意思就是使用node的旧版本,而不使用最新的OpenSSL3.0。
改完之后重新运行 npm run dev 就可以了。
不过最好的办法还是通过nvm控制node版本,这样就可以保证新老项目正常运行。