我在NPMv7上使用命令npx create-react-app创建了一个空白的React项目.0.7和 node .js v15.0.1

安装:

  • react v17.0.1,
  • node sass v5.0.0,

然后我try 导入一个空白.应用程序组件的scss文件:

File App.js

import './App.scss'

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

export default App;

100

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.

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

  }
}

推荐答案

TL;DR

  1. npm uninstall node-sass
  2. npm install sass

或者,如果使用Yarn

  1. yarn remove node-sass
  2. yarn add sass

Edit3:是的,再编辑一次.转移到sass(dart sass)是最好的解决方案.前一个版本包括将 node sass锁定到版本4.x、 x已经有2年的历史了,没有更新的SCSS功能.


Edit2:sass loader v10.0.5修复了它.问题是,您可能没有将其用作项目依赖项,而是更多地用作依赖项的依赖项.CRA使用固定版本、angular cli锁定 node sass v4,等等.

目前的建议是:如果只安装 node sass,请查看以下解决方法(以及注释).如果您正在处理一个空白项目,并且可以管理Webpack配置(不使用CRA或CLI来构建项目),请安装最新的sass loader.


Edit:这个错误来自sass-loader.由于 node sass@latest是v5,因此存在semantic versioning个不匹配.0.0,sass loader期望^4.0.0.

他们的存储库中有一个未解决的问题,需要判断相关的修复程序.在此之前,请参考下面的解决方案.


Workaround:暂时不要安装 node sass 5.0.0(主要版本刚刚升级).

卸载 node sass

npm uninstall node-sass

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

npm install node-sass@4.14.1


注意:建议使用LibSass(因此也是 node sass)is deprecated和dart sass.You can use sass instead,这是一个 node .编译成纯JavaScript的dart sass的js发行版.

Reactjs相关问答推荐

使用React Router多姆表单组件附加/?地址栏中基本URL的索引

react 路由导航不工作,但手动路由工作

从Microsoft Excel粘贴复制的单元格时,将Excel单元格格式(粗体、下划线、斜体)带入Reaction

有没有办法在Shopify中显示自定义计算的交货日期?

在Reaction中管理多个状态

在构建或部署Reaction应用程序时出错

用于获取带有事件处理程序的API的动态路由

状态改变不会触发重新渲染

如何使用服务器中的数据自动填充表单字段?

为 Next.js 应用程序目录中的所有页面添加逻辑的全局文件是什么?

使用 map 循环浏览列表列表中的列表并显示它们

React - 拖放 UML

Cypress 组件测试不渲染react 组件(但它的内容)

如何使用 React 更改 Material UI 中 ButtonGroup 的 colored颜色 ?

如何通过 React JS 中的映射将新元素添加到对象数据数组中

如何避免在 react useEffect 上滚动时出现小的延迟?

如何在react 中更新子组件中的变量?

map 未显示在react 传单中

如何使图标适合 react-bootstrap 中的行元素

将 set statehook 函数传递给子路由组件.解构错误