提问者:小点点

错误:节点Sass版本5.0.0与^4.0.0不兼容


我在NPMV7.0.7和NodeV15.0.1上使用命令:npx create-react-app创建了空白的React项目

已安装:

  • React v17.0.1,
  • 节点-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"
  },
 ...
 
  }
}

共2个答案

匿名用户

编辑:此错误来自SASS-Loader。由于node-sass@latest是v5.0.0,而sass-loader预期为^4.0.0,因此存在SEMEVER不匹配。
它们的存储库中存在一个公开问题,需要检查相关的修复程序。在此之前,请参考下面的解决方案。

我认为错误很简单:还不要安装node-sass 5.0.0(主要版本刚刚被取消)。

卸载节点-SASS

NPM卸载节点-SASS

然后安装最新版本(5.0之前)

NPM安装node-sass@4.14.1

注意:不推荐使用LibSass(因此也不推荐使用node-sass),建议使用dart-sass实现。您可以改用SASS,它是编译为纯JavaScript的dart-sass的节点发行版。

匿名用户

卸载节点-SASS

npm uninstall node-sass

使用sass的人:

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