Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error: 'node-sass' version 5.0.0 is incompatible with ^4.0.0

I've created a blank React project, using the command: npx create-react-app on npm v7.0.7 and Node.js v15.0.1

Installed:

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

Then I tried to import a blank .scss file to the App component:

File App.js

import './App.scss'  function App() {   return (     <div className="App">       App     </div>   ); }  export default App; 

It throws an error:

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"   },  ...    } } 
like image 666
JDKot Avatar asked Oct 31 '20 18:10

JDKot


People also ask

How do you fix error node Sass does not yet support your current environment?

Another approach to fix the “Node Sass does not yet support your current environment” error would be to downgrade your Node back to the version it was when node-sass worked. You could use the nvm use [node version] command to achieve this.

How do I know what version of sass I have?

The “-v” command checks the version of SASS you have installed. If you don't have it installed, it will come back as not installed.


2 Answers

TL;DR

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

Or, if using Yarn

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

Edit3: yes, another edit. Moving to sass (dart-sass) is the best solution. Previous one included locking node-sass to version 4.x.x, which is 2 years old and lacks newer SCSS features.


Edit2: sass-loader v10.0.5 fixes it. The problem is you might not be using it as a project dependency, but more as a dependency of your dependencies. CRA uses a fixed version, angular-cli locks to node-sass v4, and so on.

The recommendation for now is: if you're installing just node-sass, check the below workaround (and the note). If you're working on a blank project and you can manage your Webpack configuration (not using CRA or a CLI to scaffold your project), install the latest sass-loader.


Edit: this error comes from sass-loader. There is a semantic versioning mismatch since node-sass @latest is v5.0.0 and sass-loader expects ^4.0.0.

There is an open issue on their repository with an associated fix that needs to be reviewed. Until then, refer to the solution below.


Workaround: don't install node-sass 5.0.0 yet (the major version was just bumped).

Uninstall node-sass

npm uninstall node-sass

Then install the latest version (before 5.0)

npm install [email protected]


Note: LibSass (hence node-sass as well) is deprecated and dart-sass is the recommended implementation. You can use sass instead, which is a Node.js distribution of dart-sass compiled to pure JavaScript.

like image 164
Nicolas Hevia Avatar answered Oct 21 '22 20:10

Nicolas Hevia


The only one reason why you get some error like that, is because your Node.js version is not compatible with your node-sass version.

So, make sure to checkout the documentation at node-sass.

Or this image below will be help you in deciding what Node.js version can use the node-sass version.

Enter image description here

For an example, if you're using Node.js version 12 on your Windows system ("maybe"), then you should have to install the node-sass version 4.12.

npm install [email protected] 

Yeah, like that. So now you only need to install the node-sass version recommended by the node-sass team with Node.js version installed on your computer.

like image 27
Titus Sutio Fanpula Avatar answered Oct 21 '22 18:10

Titus Sutio Fanpula