错误:'node-sass' 版本 5.0.0 与 ^4.0.0 不兼容。

652

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

安装了以下内容:

  • React 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"
  },
 ...

  }
}
23个回答

0

这个错误是由于sass loader与node-sass的版本不兼容导致的。

请在您的package.json文件末尾添加以下依赖项。

注意:您可以通过谷歌搜索来查看哪个sass-loader版本与您的node-sass版本兼容。

"devDependencies": { "node-sass": "^6.0.1", "sass-loader": "^10.2.0" }


0
在 app.js 或任何导入 CSS 的位置,确保导入的是 CSS 而不是 SCSS。package.json 中的脚本将创建一个 CSS 文件,这就是应该导入的文件。
    "scss": "node-sass --watch -include-path src/scss -o src/css"

这个脚本将监视 src 文件夹内的 scss 文件夹中的一个 scss 文件。然后它会在 src 中创建一个 css 文件夹,并在该文件夹中添加一个 css 文件。这是您应该在 app.js 中导入的文件。

要运行脚本:

npm run scss

文件结构示例: src/scss/styles.scss 脚本创建的 CSS 文件: src/css/styles.css

-4

解决此问题的步骤:

  1. 前往 node_modules 文件夹并打开 node-sass modules。

  2. 在 node-sass 内部的 package.json 文件中,将版本从“5.0.0”更改为“4.14.1”。

  3. 最后在主项目的 package.json 中再次更改 node-sass 版本,将其从“5.0.0”更改为“4.14.4”。


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