这个错误是由于Node.js版本与npm不兼容导致的。你可以尝试升级或降级Node.js版本,或者使用nvm(Node Version Manager)来管理多个Node.js版本。
用旧版本npm是正常的,最近更新了新版,导致项目编译有问题。用nvm做不同版本切换是可以的,对管理多个node版本比较适合,我找了一下发现更快捷的方式,我是在windows下面运行的,所以在脚本运行前设置一下就行了:
修改package.json文件:
"scripts": { "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build", "dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --mode=dev" }
没错就是加上了
SET NODE_OPTIONS=--openssl-legacy-provider &&
具体来说,--openssl-legacy-provider 是 Node.js 中的一个选项,用于指定在使用 OpenSSL 时选择旧的加密提供程序。在某些情况下,新的加密库可能与现有代码不兼容,因此可以使用这个选项来强制 Node.js 使用旧的加密提供程序。
重新运行npm run build 和npm run serve都正常