Fehlermeldung "Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 14.x" lösen

Beim Ausführen eines gulpfile.js in Jetbrains Rider (oder auch in Visual Studio, oder auch auf der Befehlszeile) erscheint die Fehlermeldung:

Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 14.x

Lösung

npm rebuild node-sass

Ausführen in dem Ordner, in dem der „node_modules“-Unterordner liegt. Den force-Schalter nicht angeben.

(Von hier)

Manchmal hat das npm rebuild node-sass bei mir nichts geholfen.

In diesem Stack-Overflow-Posting gibt es noch mehr Tipps.

Dieser konkrete Tipp war am nützlichsten:

  1. Remove package-lock.json file
  2. Remove node_modules folder
  3. Optional: running npm install --global windows-build-tools (Quelle)
  4. Optional: Then remove from package.json it devDependencies "node-sass": "4...",
  5. Run npm i node-sass -D (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)
  6. Run npm i (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)

Den 3. Schritt habe ich weg gelassen, und es ging auch.

Eine andere Meldung war auch mal:

Error: Cannot find module ‚sass‘

In meinem Fall konnte ich es lösen mit:

  1. Remove package-lock.json file
  2. Remove node_modules folder
  3. Run npm i (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)

Eine ähnliche Meldung lautet:

Failed to run "C:\MyProject\Source\Web\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
Error: Missing binding C:\MyProject\Source\node_modules\node-sass\vendor\win32-x64-72\binding.node
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 12.x
Found bindings for the following environments:
  - Windows 64-bit with Node.js 14.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to download the binding for your current environment.
    at module.exports (C:\MyProject\Source\node_modules\node-sass\lib\binding.js:15:13)
    at Object.<anonymous> (C:\MyProject\Source\node_modules\node-sass\lib\index.js:14:35)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Module.require (internal/modules/cjs/loader.js:887:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (C:\MyProject\Source\node_modules\gulp-sass\index.js:166:21)
    at Module._compile (internal/modules/cjs/loader.js:999:30)

Auch das lies sich lösen mit:

  1. Remove package-lock.json file
  2. Remove node_modules folder
  3. Optional: Then remove from package.json it devDependencies "node-sass": "4...",
  4. Run npm i node-sass -D (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)
  5. Run npm i (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)
  6. Run npm rebuild node-sass (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)

Anschließend hatte ich noch folgenden Fehler:

Failed to run "C:\MyProject\Source\Web\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
Error: Missing binding C:\MyProject\Source\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-x64-72\binding.node
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 12.x
Found bindings for the following environments:
  - Windows 64-bit with Node.js 14.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to download the binding for your current environment.
    at module.exports (C:\MyProject\Source\node_modules\gulp-sass\node_modules\node-sass\lib\binding.js:15:13)
    at Object.<anonymous> (C:\MyProject\Source\node_modules\gulp-sass\node_modules\node-sass\lib\index.js:14:35)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Module.require (internal/modules/cjs/loader.js:887:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (C:\MyProject\Source\node_modules\gulp-sass\index.js:166:21)
    at Module._compile (internal/modules/cjs/loader.js:999:30)

Das konnte ich lösen mit:

  1. Remove package-lock.json file
  2. Remove node_modules folder
  3. Optional: Then remove from package.json it devDependencies "gulp-sass": "4...",
  4. Run npm i gulp-sass -D (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)
  5. Run npm i (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)
  6. Run npm rebuild gulp-sass (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)

Zusammenfassend, die obigen 2 Blöcke im Gesamten gelöst:

  1. Remove package-lock.json file
  2. Remove node_modules folder
  3. Optional: Then remove from package.json it devDependencies "node-sass": "4...",
  4. Optional: Then remove from package.json it devDependencies "gulp-sass": "4...",
  5. Run npm i node-sass -D (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)
  6. Run npm i gulp-sass -D (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)
  7. Run npm i (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)
  8. Run npm rebuild node-sass (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)
  9. Run npm rebuild gulp-sass (Aktuelles Arbeitsverzeichnis in dem Ordner, der die gerade gelöschte package-lock.json enthalten hat)