npm install 报错 Error: error:0308010C:digital envelope routines::unsupported

这个错误是由于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都正常

评论/留言