我已经创建了一个空白的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"
  },
 ...

  }
}

当前回答

node-sass即LibSass将于2020年10月26日正式弃用,取而代之的是你应该使用sass即Dart sass。

对于npm,你可以这样做:

npm uninstall node-sass
npm install sass --save-dev

对于纱线,请:

yarn remove node-sass
yarn add sass

其他回答

卸载node-sass:

npm uninstall node-sass

使用sass by:

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

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

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

小更新:如果您得到关于node-sass的以下错误,请遵循下面给出的步骤。

代码EPERM npm犯错!系统调用分开

解决方法:

关闭Visual Studio 手动移除。node-sass。从node_modules删除 开放Visual Studio NPM缓存验证 NPM安装node-sass@4.14.1

添加sass-loader作为开发依赖为我解决了这个问题。 “devDependencies”:{“node-sass”:“0 ^”、“sass-loader”:“^ 11.1.1 "}

使用npm,

NPM卸载node-sass NPM安装node-sass 将包中的“react-scripts”:“4.0.0”更改为“react-scripts”:“4.0.3”。Json并保存 npm安装 npm开始

或者,用纱线-

纱线拆卸节点 Yarn add——dev node-sass 如上所述 线安装 纱线开始