React项目安装Node Sass失败报错,清理依赖重装仍未解决怎么办
Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic.
问题根因
node-sass已被官方废弃,且版本和本地Node.js版本强绑定,低于v7的node-sass不兼容Node v16及以上版本,就会抛出上述报错- 删除
node_modules和package-lock.json的操作没有解决版本兼容性问题,所以不生效
解决方案
方案1:替换为官方推荐的sass包(优先选择,无兼容问题)
node-sass官方目前已经推荐使用纯JS实现的dart-sass(npm包名为sass)作为替代,不需要本地编译环境,完全兼容原有scss/sass语法,修改成本为0:
- 先卸载项目内的
node-sassnpm uninstall node-sass - 安装
sass作为开发依赖npm install sass --save-dev - 原有业务代码不需要做任何调整,直接正常启动项目即可
方案2:强制安装适配版本的node-sass
如果项目历史原因必须使用node-sass,可以按照本地Node.js版本安装对应的高版本node-sass:
- Node v16.x 对应
node-sass@6.x及以上 - Node v17.x 及以上对应
node-sass@7.x及以上 - 以安装v7.0.3版本为例,执行命令:
npm install node-sass@7.0.3 --save-dev
注意:该方案需要本地配置对应版本的node-gyp编译环境,Windows平台还需要额外安装Visual Studio Build Tools,后续升级Node版本还需要重新适配node-sass版本,维护成本较高
内容的提问来源于stack exchange,提问作者Dansiecrown
相关产品推荐
相关产品推荐

