欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > node 升级之后 npm run build 错误

node 升级之后 npm run build 错误

2024/11/30 9:36:10 来源:https://blog.csdn.net/qq_34707272/article/details/139672390  浏览:    关键词:node 升级之后 npm run build 错误

错误信息 Error

Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:67:19)at Object.createHash (node:crypto:130:10)

该错误源于您对过时的 SSL 版本的依赖,因此您有两个好的选择和两个最好但值得怀疑的选择:

1. 尝试重新安装依赖项

  • 删除node_modules 文件夹并重新运行 npm install。如果您的依赖项依赖于针对您安装的任何 Node 版本进行编译,这可能会立即解决问题。这是最不可能奏效的解决方案,但可能会在不需要您进行任何“实际”工作的情况下解决问题,因此始终值得一试。

2. 更新依赖项

  • 几乎所有存在此问题的依赖项都有可用的较新版本,您可以安装它们。在 Node 18 成为 Node 的 LTS 版本后,找出您的依赖项对应的版本,并将您的依赖项升级到该版本。

这确实是唯一正确的解决方案:更新您的依赖项,因为就像 Node.js 本身一样,它们可能会使您的项目容易受到攻击和利用。

3. 降级到 Node.js v16。

  • 您可以降级 Node 本身,以便使用使用旧版、不安全的 LibSSL 版本的版本。当然,这并不能“解决”运行不安全且可能被利用的代码的问题,但您的代码至少可以运行。

(您可以使用官方 Node 安装程序执行此操作,也可以使用 nvm 之类的程序。对于 Windows,请使用 nvm-windows。)

显然,这不是一个好主意。

4. 告诉 Node 使用旧版 OpenSSL 提供程序

在类 Unix 上(Linux、macOS、Git bash 等):

export NODE_OPTIONS=--openssl-legacy-provider

在 Windows 命令提示符上:

set NODE_OPTIONS=--openssl-legacy-provider

在 PowerShell 上:

$env:NODE_OPTIONS = "--openssl-legacy-provider"

当 Node 新版本刚刚成为活动 LTS 时,选项 1 和 2 实际上不可用,但对于任何仍在寻找此答案的人来说,3 和 4 不应再被视为任何重要选项。

5. 运行的时候设置NODE_OPTIONS

"build": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",

现在可以使用npm run build构建了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com