当前位置: 首页 > news >正文

vue项目启动报错(node版本与Webpack)

一、问题

因为项目需要将node版本从v14.17.0升级到v20.9.1了,然后启动项目报错

报错有些多,直接省略部分

building 2/2 modules 0 activeError: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:79:19)
at Object.createHash (node:crypto:139:10)

10% building 2/5 modules 3 active …rains\IDEA\IdeaProjects\lz-safety\LZSafety-UI\node_modules@vue\cli-service\node_modules\webpack-dev-server\client\index.js?http://localhost:3200n
ode:internal/crypto/hash:79
this[kHandle] = new _Hash(algorithm, xofLen, algorithmId, getHashCache());
^
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:79:19)
at Object.createHash (node:crypto:139:10)

opensslErrorStack: [
‘error:03000086:digital envelope routines::initialization error’,
‘error:0308010C:digital envelope routines::unsupported’
],
library: ‘digital envelope routines’,
reason: ‘unsupported’,
code: ‘ERR_OSSL_EVP_UNSUPPORTED’
}
Node.js v20.19.1
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

原因大致就是 Node.js 版本升级后,OpenSSL 安全策略加强导致的。
通俗点说就是 Webpack 4 默认使用 MD5 哈希算法,但 Node.js 17+ 版本默认禁用了弱哈希算法(如 MD5、SHA-1)
项目可能使用了较旧的 WebpackVue CLI 版本(如 Webpack 4),与新的 Node.js 版本不兼容

二、解决

1、修改启动脚本。
2、升级Webpack 和相关依赖。
3、将Node.js 版本降级。

单纯启动个项目,所以采用方案一

找到项目的package.json文件,修改serve选项(控制项目启动),build(打包项目的)

修改前修改后
在这里插入图片描述在这里插入图片描述

修改为以下代码

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

启动项目,直接运行成功了
在这里插入图片描述

相关文章:

  • vue-cli 构建打包优化(JeecgBoot-Vue2 配置优化篇)
  • MEMO数据DID与ZK技术:赋能RWA代币化与可信流通的新基石
  • C++ 01.vscode配置c++开发环境
  • C++语法理解记录
  • 安卓开发用到的设计模式(1)创建型模式
  • 缺乏经验的 PCB 过孔建模方法
  • NIFI的处理器:JSLTTransformJSON 2.4.0
  • 基于LiveData和ViewModel的路线管理实现(带PopupWindow删除功能)
  • 【神经网络与深度学习】流模型的通俗易懂的原理
  • Simon J.D. Prince《Understanding Deep Learning》
  • vscode连接WSL卡住
  • jvm调优以及常见jvm问题解决等
  • chrono类 根据duration 类的周期类型得到对应的周期名称
  • 基于AI大语言模型的历史文献分析在气候与灾害重建中的技术-以海南岛千年台风序列重建为例
  • 现代生活中的健康养生之道
  • 传统Spring MVC + RESTful 与 Vue3 结合 JWT Token 验证的示例
  • 双检锁(Double-Checked Locking)单例模式
  • 管理会议最佳实践:高效协同与价值最大化
  • 卫星互联网:构建全球无缝通信网络的未来
  • C#SQLServer数据库通用访问类
  • 衡天主机怎么做网站/seo关键词挖掘
  • 佛山java web网站开发/跟我学seo从入门到精通
  • 做o2o网站需要多少钱/黄页88网站推广方案
  • 重庆模板做网站/今日全国疫情一览表
  • 怎样做网站分流赚钱/怎么买域名自己做网站
  • 网站加速打开/百度竞价推广