Vue Node 编译报错:digital envelope routines::unsupported

错误内容

bash 复制代码
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:130:10)

错误原因

因为 nodeJs v17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制,nodeJs v17 之前版本没影响,但 V17 和之后版本会出现这个错误。例如我升级 Node 为 v18 后出现了这个错误。

解决方法

修改 package.json ,在 script 脚本的前面添加配置 NODE_OPTIONS=--openssl-legacy-provider,如下所示:

json 复制代码
  "scripts": {
    "start": "cross-env NODE_OPTIONS=--openssl-legacy-provider docusaurus start",
    "build": "cross-env NODE_OPTIONS=--openssl-legacy-provider docusaurus build --out-dir=dist"
  },
  "devDependencies": {
    "cross-env": "^7.0.3",
  }

NODE_OPTIONS=--openssl-legacy-provider 后面是原来的命令内容,这里只添加了 cross-env NODE_OPTIONS=--openssl-legacy-provider

使用 cross-env 的原因是因为这样我们可以避免 Windows、Linux、MacOS 等不同平台使用不同命令的问题。注意不要忘记在 devDependencies 中添加 cross-env 依赖。


(END)

相关推荐
小鱼冻干7 分钟前
node.js 文件流-可读取流
前端·node.js
银之夏雪丶14 分钟前
Vue 3 vs Vue 2:深入解析从性能优化到源码层面的进化
前端·vue.js
qq_139484288214 分钟前
springboot433-基于SpringBoot的流浪猫爱心救助系统(源码+数据库+纯前后端分离+部署讲解等)
java·数据库·vue.js·spring boot·后端·maven·intellij-idea
野生的程序媛18 分钟前
重生之我在学Vue--第7天 Vue 3 数据请求(Axios)
前端·javascript·vue.js
接着奏乐接着舞。1 小时前
Electron + Vue 项目如何实现软件在线更新
javascript·vue.js·electron
银迢迢4 小时前
如何创建一个Vue项目
前端·javascript·vue.js
deming_su8 小时前
第六课:数据库集成:MongoDB与Mongoose技术应用
javascript·数据库·mongodb·node.js·html
几何心凉8 小时前
如何解决Vue组件间传递数据的问题?
前端·javascript·vue.js
鱼樱前端10 小时前
Vue3 + TypeScript 整合 MeScroll.js 组件
前端·vue.js
拉不动的猪11 小时前
刷刷题29
前端·vue.js·面试