我已经创建了一个空白的React项目,使用命令:npx create-react-app在npm v7.0.7和Node.js v15.0.1

安装:

v17.0.1反应, node-sass v5.0.0,

然后我尝试导入一个空白的.scss文件到App组件:

文件App.js

import './App.scss'

function App() {
  return (
    <div className="App">
      App
    </div>
  );
}

export default App;

它抛出一个错误:

Failed to compile.

./src/App.scss (./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-6-1!./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader??ref--5-oneOf-6-3!./node_modules/s
ass-loader/dist/cjs.js??ref--5-oneOf-6-4!./src/App.scss)
Error: Node Sass version 5.0.0 is incompatible with ^4.0.0.

文件package.json

{
  "name": "react-17-node-sass-5",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.11.5",
    "@testing-library/react": "^11.1.0",
    "@testing-library/user-event": "^12.1.10",
    "node-sass": "^5.0.0",
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
    "react-scripts": "4.0.0",
    "web-vitals": "^0.2.4"
  },
 ...

  }
}

当前回答

据尼古拉斯·海维亚的编辑说

Sass-loader v10.0.5修复了它

我启动了这个命令:

npm install sass-loader@^10.0.5 node-sass --save-dev

这解决了我的问题。

请注意,我是在开发环境中。在其他情况下,应该删除——save-dev选项。

其他回答

解决此问题的步骤:

进入你的node_module文件夹,打开node-sass模块。 在包装里。Json文件在node-sass,将版本从“5.0.0”改为“4.14.1”。 终于在包裹里了。将node-sass版本从“5.0.0”改为“4.14.4”。

这应该有用。

这是版本问题。安装正确的依赖版本:

npm uninstall node-sass
npm install node-sass@4.14.1

或者重新构建node-sass,这样兼容性就不会产生错误。 当node-sass和node发生不兼容时,您将得到typescript错误。 这样做可以实现node-sass的兼容性。

NPM重建node-sass

你得到这样错误的唯一原因,是因为你的Node.js版本与node-sass版本不兼容。

因此,请确保在node-sass处签出文档。

或者下面这张图片将帮助你决定哪个Node.js版本可以使用node-sass版本。

例如,如果你在Windows系统上使用Node.js版本12(“可能”),那么你应该安装node-sass版本4.12。

npm install node-sass@4.12

是的,就像这样。所以现在你只需要安装node-sass团队推荐的node-sass版本,并在你的计算机上安装Node.js版本。

卸载node-sass:

npm uninstall node-sass

使用sass by:

npm install -g sass
npm install --save-dev sass