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

node从14升级到22,vue2项目调整内容

下载新版本node之后,运行vue2项目会报如下错误:

因为 node.js V17版本中发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在升级 nodejs 版本后会报错。

那么可以在package.json中加入(注意:&&后面是你的项目的启动工具,根据不同框架更改启动工具):

"scripts": {
    "dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
    "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
  },

重新运行之后会提示不支持node-sass

这个错误是由于 node-sass 模块不兼容当前 Node.js 版本(v22.14.0)导致的。node-sass 已官方宣布弃用,建议迁移到 sass(Dart Sass)。以下是具体解决方案:

替换 node-sass 为 sass(推荐)

直接改用官方推荐的 sass 包,语法完全兼容且支持新版 Node.js:

# 卸载 node-sass
npm uninstall node-sass

# 安装 sass(Dart Sass)
npm install sass --save-dev

替换完成之后,发现又报错了

解决方法:(Dart Sass已经弃用了/deep/选择器)使用 ::v-deep 替代 /deep/,直接修改代码:

// 修改前(废弃写法)
/deep/ .el-dialog__body {
  padding: 20px;
}

// 修改后(标准写法)
::v-deep .el-dialog__body {
  padding: 20px;
}

另外需要注意:确保穿透选择器 仅作用于子组件,不要嵌套在普通样式中:

// ❌ 错误写法(嵌套在普通样式中)
.parent-class {
  ::v-deep .el-dialog__body {
    padding: 20px;
  }
}

// ✅ 正确写法(直接穿透)
::v-deep .el-dialog__body {
  padding: 20px;
}

至此,升级已完成,如果还有其他报错,可继续进行修改,直到项目运行起来

相关文章:

  • EtherCAT从站错误0x001D调试指南
  • Python杨辉三角形
  • 71.case语句要比if-else 语句费逻辑单元
  • Spring Boot 测试详解,包含maven引入依赖、测试业务层类、REST风格测试和Mock测试
  • 20250412 机器学习ML -(3)数据降维(scikitlearn)
  • 软件设计师综合知识点总结(根据 教材+视频+刷题 总结整理)
  • Linux基础13
  • 【Flink运行时架构】作业提交流程
  • Java如何获取文件的编码格式?
  • Leedcode刷题 | Day31_贪心算法05
  • x-cmd install | yr - 告别网页!在终端轻松掌控天气预报
  • 小白学习java第12天(上):网络编程
  • Rasa中config.yml文件信息详细解释
  • RCE漏洞学习
  • 【Vue #3】指令补充样式绑定
  • 仿真每日一练 | Workbench移动载荷作用下旋转楼梯瞬态特性分析
  • idea 保存格式化 但是不格式化 Xml
  • 【AI论文】VCR-Bench:视频链式思考推理的综合评估框架
  • 如何查看自己 Android App 的私有数据?从 `adb backup` 到数据提取全过程
  • 01_核心系统下的技术原理解析
  • 杭州做卖房子的工作哪个网站好/优化什么建立生育支持政策体系
  • 小程序如何快速推广/seo推广教程视频
  • weui.css做网站/优化大师win10下载
  • 淮安做网站的有多少钱/2345软件为什么没人管
  • 做时时彩网站平台有哪些/百度网址大全电脑版旧版本
  • 电商网站开发重难点/seo优化网站推广专员招聘