1. ホーム
  2. reactjs

[解決済み] エラー: 'node-sass' バージョン 5.0.0 は ^4.0.0 と非互換です。

2022-03-16 07:45:40

質問

コマンドを使用して、空白のReactプロジェクトを作成しました。 npx create-react-app npm v7.0.7 と Node.js v15.0.1 上で。

インストールされています。

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

次に、App コンポーネントに空の .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.

ファイル パッケージ.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

編集3 : はい、また編集です。sass (dart-sass)に移行するのが最良の解決策です。以前のものは、node-sassを2年前のバージョン4.x.xにロックして、より新しいSCSSの機能を欠いていました。


編集2 : sass-loader v10.0.5 はそれを修正します。問題は、プロジェクトの依存関係としてではなく、依存関係の依存関係として使っている可能性があることです。CRAは固定バージョンを使用し、angular-cliはnode-sass v4にロックする、などです。

今のところ推奨は、node-sassだけをインストールしている場合は、以下の回避策を確認してください(と注意書き)。もし、白紙のプロジェクトで作業していて、自分の ウェブパック の設定(CRAやプロジェクトの足場となるCLIを使用しない)には、最新のsass-loaderをインストールしてください。


編集 : このエラーは次の場所から発生します。 サスローダ . そこには セマンティックバージョニング node-sass @latest は v5.0.0 であり、sass-loader は ^4.0.0 を期待しているので、ミスマッチがあります。

彼らのリポジトリには、関連する修正を含むオープンイシューがあり、レビューが必要です。それまでは、以下の解決策を参照してください。


ワークアラウンド : node-sass 5.0.0 をまだインストールしないでください (メジャーバージョンが上がったばかりです)。

node-sassのアンインストール

npm uninstall node-sass

その後、最新版(5.0以前)をインストールしてください。

npm install [email protected]


注:LibSass(したがってnode-sassも同様) は非推奨 であり、dart-sass が推奨される実装です。 を使用することができます。 sass 代わりに これは、純粋なJavaScriptにコンパイルされたdart-sassのNode.jsディストリビューションです。