You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多次尝试修复Node Sass 7.0.1与^4.0.0不兼容报错无效

报错核心原因

这个版本不兼容问题和你重装sass、node-sass的操作没有关系,根源是你项目里的react-scripts版本和node-sass版本完全不匹配:你当前安装的react-scripts@2.1.3内置的sass-loader版本仅支持node-sass@^4.0.0,你装的7.0.1版本不在它的兼容范围内,不管怎么反复重装高版本node-sass都绕不过构建工具本身的版本约束。
另外你的package.json里还有两个会干扰依赖安装的错误项:

  • 错误将Node运行环境写到了dependencies依赖里,"node": "^17.7.2"这行完全是多余的
  • 安装了名称错误的废弃包react-script@^2.0.5(比正常包名少了末尾的s),属于冗余无效依赖
推荐修复方案(无兼容问题)

现在官方已经废弃node-sass,推荐使用dart-sass替代,配合新版react-scripts可以彻底解决版本兼容问题,按以下步骤操作:

  1. 清理本地旧依赖缓存,避免旧版本文件干扰
rm -rf node_modules package-lock.json yarn.lock
  1. 修改package.json配置:
    • 删除dependencies下的"node": "^17.7.2"、"react-script": "^2.0.5"、"node-sass": "^7.0.1"三个条目
    • 添加sass依赖,同时把react-scripts升级到兼容React18的5.0.1版本,修改后的dependencies如下:
"dependencies": {
  "@testing-library/jest-dom": "^5.16.4",
  "@testing-library/react": "^13.3.0",
  "@testing-library/user-event": "^13.5.0",
  "sass": "^1.54.0",
  "react": "^18.1.0",
  "react-dom": "^18.1.0",
  "react-scripts": "^5.0.1",
  "web-vitals": "^2.1.4"
}
  • 顺便把scripts里start命令的--openssl-legacy-provider参数删掉,react-scripts 5.x已经修复了OpenSSL兼容问题,不需要这个参数,修改后的start命令为:"start": "react-scripts start"
  1. 重新安装依赖
npm install
  1. 正常执行启动/构建命令即可,不会再出现版本不兼容报错
npm start
兼容旧版本方案(不升级react-scripts)

如果你因为项目历史原因必须保留react-scripts@2.1.3,就不要安装高版本node-sass,直接把node-sass版本固定为兼容的4.14.1即可:

npm install node-sass@4.14.1 --save-exact

注意:node-sass@4.x最高仅支持Node 14运行环境,如果你当前本地Node版本是15及以上,安装时会出现原生模块编译失败的问题,优先选择上面的升级方案更稳妥。

内容的提问来源于stack exchange,提问作者David Feudale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 00:37:03