React导入index.scss编译失败:Node Sass版本不兼容报错
问题描述
ReactJS项目开发过程中,在index.js入口文件导入index.scss全局样式文件时触发编译失败,控制台输出报错如下:
./src/styles/index.scss (./node_modules/css-loader??ref--6-oneOf-5-1!./node_modules/postcss-loader/src??postcss!./node_modules/react-scripts/node_modules/sass-loader/lib/loader.js??ref--6-oneOf-5-3!./src/styles/index.scss) Error: Node Sass version 7.0.1 is incompatible with ^4.0.0.
报错根因
安装的Node Sass版本和项目内sass-loader的版本要求不匹配:当前环境安装的Node Sass版本为7.0.1,但项目依赖的sass-loader仅兼容4.x版本区间的Node Sass,大版本差异导致scss编译链路无法正常运行。
补充说明:Node Sass本身已经官方废弃,后续不会再做功能更新和兼容适配,优先推荐替换为官方主推的Dart Sass实现。
解决方法
二选一操作即可,优先选择第一种方案,后续踩坑概率更低:
- 方案1:替换Node Sass为Dart Sass(推荐)
依次执行以下命令,先卸载旧版本的node-sass,再安装官方维护的sass包:
依赖安装完成后,重启本地开发服务即可正常编译scss文件。npm uninstall node-sass npm install sass -D - 方案2:降级Node Sass到兼容版本(不推荐,Node Sass已停止维护)
如果暂时不想替换依赖,可以直接将Node Sass降级到4.x区间的稳定版本,匹配sass-loader的版本要求:
安装完成后重启开发服务即可修复报错。npm install node-sass@4.14.1 -D
排查小提示:如果执行安装命令时出现依赖冲突、安装失败的问题,可以先删除项目根目录下的
node_modules文件夹和package-lock.json文件,重新执行npm install安装全量基础依赖后,再执行上述版本调整命令,能解决大部分本地缓存导致的安装异常。
内容的提问来源于stack exchange,提问作者Nourinux
相关产品推荐
相关产品推荐

