如何修复“错误:Node Sass版本8.0.0与^4.0.0不兼容”?

23

所以,在使用npm install node-sass为我的ReactJS项目安装Sass之前,我曾经使用过Sass。现在我正在开发一个新项目,并想再次使用Sass。使用相同的语法npm install node-sass进行安装,但我还是遇到了问题。

./src/components/Main.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/components/Main.scss)
Error: Node Sass version 8.0.0 is incompatible with ^4.0.0.
to import sass files, you first need to install node-sass. run `npm install node-sass` or `yarn add node-sass` inside your workspace
...
...

我按照以下链接中的说明进行操作,安装了sass:

npmjs sass-lang

使用以下语法:

brew install sass/sass/sass
npm install -g sass

但我仍然遇到之前提到的错误。

我尝试删除node-modules文件夹、package-lock.json并重新安装node-modules,但这仍未修复错误。此外,我按照其他人解决Node Sass版本5.0.0||6.0.0||7.0.0不兼容问题的方法进行操作,但这并没有解决我的问题。

现在我正在寻求帮助。


这个回答解决了你的问题吗?错误:'node-sass'版本5.0.0与^4.0.0不兼容 - disinfor
不错!我现在正好遇到这个错误,一直在检查。 - David.E
@disinfor 我之前尝试过,但没有帮助。 - Jalamang Janka
5个回答

69

不再使用node-sass

node-sass已经过时了。您可以通过以下方法轻松解决。

npm uninstall node-sass
npm install sass

它的功能完全相同,但更加稳定,您将不需要进行任何其他更改。

一切正常!



但是,如果你仍然喜欢使用node-sass

您可以使用以下表格来安装适合您已安装的Node.js版本的node-sass,您可以通过命令node --version检查您的版本。

npm install node-sass@(your version)

这里输入图片描述


2
执行以下操作: npm uninstall node-sass npm install sass 只是再次请求node-sass。 - NickJ
要导入Sass文件,您首先需要安装node-sass。卸载后出现错误。 - Ankit
@Nickj 可能需要从你的 package.json 文件中清除 node-sass - Abraham
@Abraham,问题是React脚本不再包含node-sass,因此您需要执行多个步骤才能恢复处理。最简单的解决方案是不要使用最新版本的react-scripts。 - NickJ
1
这应该是被接受的答案。通过切换到sass包,它绝对解决了问题。谢谢! - Jim Gomes

5

更新sass-loader,或者卸载并重新安装。


2
谢谢.....最终对我有用的是执行以下操作:npm uninstall node-sass npm install node-sass 在package.json中将"react-scripts": "4.0.0"更改为"react-scripts": "4.0.3"并保存 npm install npm start我从www.codegrepper.com获取了这个解决方案。 - Jalamang Janka
还要根据您使用的VueJS版本而定,对于2.6.x版本,您不能使用今天的sass-loader(12)版本,必须坚持使用v10 --> sass-loader@^10。感谢@D_Pain在其答案中提供的帮助。 - Christophe Deliens

4
你可以按照以下两个步骤操作:
  1. 卸载 node-sass: npm uninstall node-sass
  2. 安装旧版本的 node-sass: npm install --save-dev --unsafe-perm node-sass@4.14.1
现在可以了。

3

尝试这样做:在你的package.json文件中删除 "node-sass": "^4.12.0" 并替换为 "sass": ""。这对我有用。


1
我的答案是将 react-scripts 更新到 4.0.3 版本。我无法使用最新版本的 react-scripts,因为它仍需要许多技巧才能让自动加载 polyfilled 模块的包运行。请注意保留 HTML 标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接