오류 : Node Sass 버전 5.0.0은 ^ 4.0.0과 호환되지 않습니다.


337

npx create-react-appnpm v7.0.7 및 Node v15.0.1에서 다음 명령을 사용하여 빈 React 프로젝트를 만들었습니다.

설치됨 :

  • React v17.0.1,
  • node-sass v5.0.0,

그런 다음 빈 .scss 파일을 앱 구성 요소로 가져 오려고했습니다.

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

답변:


568

TL; DR

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

또는 원사를 사용하는 경우 (최신 CRA 버전의 기본값)

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

Edit2 : sass-loader v10.0.5가 수정합니다. 문제는 프로젝트 종속성으로 사용하지 않고 종속성의 종속성으로 사용하는 것입니다. CRA는 고정 버전, angular-cli 잠금을 node-sass v4 등에 사용합니다.
현재 권장 사항은 다음과 같습니다. 노드 엉덩이 검사 만 설치하는 경우 해결 방법 (및 참고 사항) 아래에 있습니다. 빈 프로젝트에서 작업 중이고 웹팩 구성을 관리 할 수있는 경우 (CRA 또는 CLI를 사용하여 프로젝트를 스캐 폴딩하지 않음) 최신 sass-loader를 설치하십시오.


편집 :이 오류는 sass-loader 에서 발생 합니다. node-sass @latest는 v5.0.0이고 sass-loader는 ^ 4.0.0을 예상하므로 semver 불일치가 있습니다.
검토해야하는 관련 수정 사항이있는 해당 저장소에 미해결 문제가 있습니다. 그때까지는 아래 솔루션을 참조하십시오.


해결 방법 : 아직 node-sass 5.0.0을 설치하지 마십시오 (주 버전이 방금 충돌 함).

node-sass 제거

npm uninstall node-sass

그런 다음 최신 버전 (5.0 이전)을 설치합니다.

npm install node-sass@4.14.1


참고 : LibSass (따라서 node-sass도 사용되지 않음 )는 더 이상 사용되지 않으며 dart-sass가 권장되는 구현입니다. 대신 순수한 JavaScript로 컴파일 된 dart-sass의 노드 배포 인을 사용할 수 있습니다sass . 하지만 경고 :

이 방법을 사용하는 데주의하십시오. React-scripts는 sass-loader v8을 사용하는데, 이는 sass보다 node-sass를 선호합니다 (node-sass에서 지원하지 않는 일부 구문이 있음). 둘 다 설치되어 있고 사용자가 sass로 작업 한 경우 CSS 컴파일 오류가 발생할 수 있습니다.


6
어떤 이유로 yarn add node-sass@4.14.1훨씬 빠르다
Tylik STEC

3
github.com/webpack-contrib/sass-loader/commit/… 에서 방금 수정 한 것 같습니다 . 따라서 sass-loader@10.0.5
Marcin

3
@TylikStec 원사 다른 패키지 관리자이지만, 배포에 문제가 발생할 수있는 두 가지 잠금 파일을 가지고, 같은 프로젝트 모두를 사용하지 않는
Binara Medawatta

14
@marcin 대답을 올린 사람이 그것을 고친 사람이기 때문에 "그들"이라고 말하는 것이 재밌습니다 :]
Benjamin Gruenbaum

1
OP와 유사한 새로운 React 프로젝트에서 "node-sass": "v5.0.0"및 "sass-loader": "^ 10.1.0"이 있지만 문제가 지속됩니다. 내 노드 버전은 15.3.0입니다. node-sass를 제거하고 @ 4.14.1을 다시 설치하면 node-sass 버전 5.0 이상을 예상하는 Node 버전 15.3.0을 사용하기 때문에 문제가 지속됩니다.
boxcarcoder

32

node-sass 제거

npm uninstall node-sass

다음과 같이 sass 를 사용하십시오 .

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

4
이 방법을 사용하는 데주의하십시오. React-scripts는 sass-loader v8을 사용하는데, 이는 sass보다 node-sass를 선호합니다 (node-sass에서 지원하지 않는 일부 구문이 있음). 둘 다 설치되어 있고 사용자가 sass로 작업하면 CSS 컴파일시 오류가 발생할 수 있습니다.
Nicolas Hevia

1
또한 글로벌 설치에주의하십시오.
Dave Kanter

1
프로젝트 별 종속성에 대한 전역 설치를 피하십시오. npx sass프로젝트 저장소에있는 동안 항상 npx 예제 를 사용하여 로컬 종속성을 참조 할 수 있습니다 .
fengelhardt

node-sass 4.14.1과 함께 node v14.15.3을 사용하고 있으며 sass 접근 방식 만 작동합니다. node-sass를 제거하고 다시 빌드하거나 5.x로 업그레이드해도 문제가 해결되지 않았습니다. 감사!
Mike

26

이와 같은 오류가 발생하는 유일한 이유는 노드 버전이 노드 엉덩이 버전과 호환되지 않기 때문입니다.

따라서 https://www.npmjs.com/package/node-sass 에서 문서를 확인하십시오.

또는 아래 이미지가 노드 버전이 node-sass 버전을 사용할 수 있도록 도와줍니다.

여기에 이미지 설명 입력

예를 들어, Windows에서 노드 버전 12 를 사용하는 경우 ( "아마도") node-sass 버전 4.12 를 설치해야합니다 .

npm install node-sass@4.12

그래, 그렇게. 따라서 이제 컴퓨터에 노드가 설치된 node-sass 팀이 권장하는 node-sass 버전 만 설치하면됩니다.


이 접근 방식을 사용하면 최신 버전의 v4를 사용하는 대신 v4.x로 고정됩니다. 예를 들어 노드 12는 4.14를 지원하더라도 4.12로 고정됩니다. npm update node-sass는 npm install node-sass@^4.124.14.1 (v4의 최신 알려진 버전)을 설치하는 것과 동일한 것을 사용하지 않는 한 작동하지 않습니다 .
Nicolas Hevia 20.11.

귀하의 응답 Nicolas Hevia에 감사드립니다.하지만 위의 코드를 시도해 보았고 옳습니다 npm install node-sass@4.12.. 하지만 nodejs 12.18.3에서 node-sass 4.14.1을 사용해 보았지만 작동하지 않습니다. 그렇기 때문에 node-sass 팀이 권장하는 버전을 사용하는 것이 좋으며 ^. 이 노드 말대꾸 4의 최신 버전으로 업데이트 것이기 때문에
디도 Sutio Fanpula

8

기본 yarn패키지 관리자 와 함께 CRA를 사용하는 경우 다음을 사용하십시오. 나를 위해 일했습니다.

yarn remove node-sass 
yarn add node-sass@4.14.1

2

특정 버전의 node-sass 패키지 (node-sass@4.14.1)를 추가 한 후 저에게 효과적이었습니다.


1

이 오류는 NodeJS 및 Node Sass 버전이 일치하지 않을 때 발생합니다.

다음과 같이하여 문제를 해결할 수 있습니다.

-1 단계 : 컴퓨터에서 Nodejs 제거

-2 단계 : Nodejs 버전 14.15.1을 재설치합니다.

-3 단계 : 명령을 실행하여 Node sass 제거npm uninstall node-sass

-4 단계 : 명령을 실행하여 Node sass 버전 4.14.1 재설치npm install node-sass@4.14.1

모든 단계가 끝나면 명령 ng serve -o을 실행하여 애플리케이션을 실행할 수 있습니다.

Node sass 버전 5.0.0은 ^ 4.0.0과 호환되지 않습니다.


0

오류가

오류 : Node Sass 버전 5.0.0은 ^ 4.0.0과 호환되지 않습니다.

1 단계 : 서버 중지

2 단계 : 실행 명령은 npm uninstall node-sass

3 단계 : package.json파일에서 node-sass를 사용할 수 있는지 확인한 다음 2 단계를 다시 실행합니다.

4 단계 : npm install node-sass@4.14.1<=== 명령 실행

5 단계 : 명령이 성공적으로 실행될 때까지 기다립니다.

Step6 : 서버 시작 npm start

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.