it-swarm.com.de

Node Sass konnte keine Bindung für Ihre aktuelle Umgebung finden

Ich habe Probleme beim Erstellen einer App, da der Knotensitz immer mit dem Fehler ausfällt.

Fehler in fehlender Bindung /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node
Knoten Sass konnte keine Bindung für Ihre aktuelle Umgebung finden: OS X 64-Bit mit Knoten 0.10.x

Ich habe versucht zu laufen

npm rebuild node-sass

was sagt

Binär ist gut; aufhören.

Beim node -v bekomme ich v6.2.2

Welches ist anders als das, was der Fehler "Node 0.10.x" sagt. Ich kann nicht herausfinden, warum es die falsche Version bekommt. Ich habe auch versucht, den Ordner node_modules zu entfernen und npm update oder npm install auszuführen. Beide haben das Problem nicht behoben. Irgendwelche Ideen?

329
wazzaday

Ich hatte das gleiche Problem  

Es gibt einen Fehler in Ihrer Gulpfile:
Fehler: Bindung fehlt E:\allapp\badshaindiancuisine\node_module\node-sass\vendor\win32-x64-46\binding.node
Node Sass konnte keine Bindung für Ihre aktuelle Umgebung finden: Windows 64-Bit mit Node.js 4.x

Bindungen für die folgende Umgebung gefunden:
- OS X 64-Bit mit Node.js 4.x

Wie löse ich mein Problem

Gehen Sie in den Projektordner und führen Sie dann Folgendes aus:

npm rebuild node-sass
518
Bipon Biswas

Hinweis Ich verwende VS 2015, 64-Bit-Windows 7. 

Funktioniert auch für VS 2017 (von den Antworten auf diesen Beitrag)

Task Runner Explorer kann keine Aufgaben laden

Für VS 2015

  • Gehen Sie zu: Tools> Optionen> Projekte und Lösungen> Externe Webtools 

Für VS 2017 (.3)

  • Tools> Optionen> Projekte und Lösungen> Webpaketverwaltung> Externe Webtools (per @nothrow)

In VS 2017 müssen Sie außerdem $ (PATH) über $ (VSINSTALLERDIR)\Web\External setzen 


  • Stellen Sie die Reihenfolge so ein, dass $ (PATH) über $ (DevEnvDir)\Extensions\Microsoft\Web Tools\External liegt

 enter image description here


Das Löschen von node_modules und das Ausführen von npm install und dann npm rebuild node-sasstaten nichts.

234
Rob Scott

Ich hatte das gleiche Problem in einer Windows-Umgebung und erhielt die folgende Fehlermeldung:

Fehler: Fehlende Bindung C:\Development {ProjectName}\node_modules\node-sass\vendor\win32-ia32-47\binding.node
Node Sass konnte keine Bindung für Ihre aktuelle Umgebung finden: Windows 32-Bit mit Node.js 5.x
Bindungen für folgende Umgebungen gefunden:
- Windows 64-Bit mit Node.js 6.x

Keiner der in den anderen Antworten hier aufgeführten npm-Befehle (npm install, npm rebuild node-sass usw.) hat funktioniert.

Stattdessen musste ich die fehlende Bindung herunterladen und im entsprechenden Zielordner ablegen.

Die Bindungen sind on git . Stimmen Sie die Datei mit dem Ordnernamen ab, der in Ihrer Fehlermeldung nach /node_modules/node-sass/vendor/ angegeben ist (in Ihrem Fall 'darwin-x64-11', also möchten Sie die darwin-x64-11_binding.node-Datei).

Erstellen Sie den fehlenden Ordner in Ihrem Projekt (/node_modules/node-sass/vendor/darwin-x64-11), kopieren Sie die .node-Datei in das neue Verzeichnis und benennen Sie sie in binding.node um.

URL zum Node-sass-Release: https://github.com/sass/node-sass/releases

106
Beofett

Arbeitete für mich:

Löschen Sie einfach den Ordner node-sass und führen Sie npm install ..__ aus.

96
Codiee

Führen Sie einfach den folgenden Befehl aus:

npm rebuild node-sass --force


In meinem Fall konnte auch Python nicht gefunden werden. 

Das folgende Verfahren hat das Problem gelöst (Windows):

npm rebuild node-sass --force
-- cannot find python.exe, if you have Python installed, add it to your path:
set PYTHON=C:\Python27\Python.exe
-- else: download python "Windows x86-64-MSI" installer from https://www.python.org/downloads/release/python-2714/
-- install python
-- at installation start check: add env variable to path
-- after successfull installation:
npm rebuild node-sass --force
-- finished successfully
66
Legends

Ich hatte ein ähnliches Problem und der Grund war, dass auf meinem Rechner zwei Versionen von Node installiert waren: eine "globale" und eine weitere auf Projektebene. Sass wird nur dann korrekt bauen, wenn der Gulp-Build unter Node ausgeführt wird. js 4.x-Version, stellen Sie daher sicher, dass Sie die Version des Knotens aktualisieren, den Sie verwenden.

PS: Wenn Sie den Ordner node_modules in Ihrem Projekt vollständig entfernen und von Grund auf neu erstellen, lädt npm die richtigen Abhängigkeiten für Ihre aktuelle System- und Knotenversion herunter.

17

Fix

npm rebuild node-sass --force

Oder, wenn Sie innerhalb eines Containers Node-sass verwenden:

docker exec <container-id> npm rebuild node-sass --force

Erläuterung

Dieser Fehler tritt auf, wenn Node-sass nicht über die korrekte Bindung für das aktuelle Betriebssystem verfügt.

Meiner Erfahrung nach passiert dies normalerweise, wenn Sie node_modules direkt zum Container-Dateisystem in Ihrer Docker-Datei hinzufügen (oder sie mit einem Docker-Volume bereitstellen). Dies liegt daran, dass sich Ihre Containerarchitektur häufig von Ihrem aktuellen Betriebssystem unterscheidet. Ich habe beispielsweise node-sass auf macOS installiert, aber mein Container läuft unter Ubuntu.

Wenn Sie die Neuerstellung von node-sass aus dem Container erzwingen, lädt node-sass die richtigen Bindungen für das Container-Betriebssystem herunter.

Siehe meinen Reprofall um mehr zu erfahren.

15

in einigen Fällen müssen Sie die Node-sass-Bibliothek deinstallieren und installieren. Versuchen:

npm uninstall --save node-sass

und

npm install --save node-sass

schau dir das an seine Arbeit für mich, Stack Link hier

13
core114

Versuchen Sie, das Suffix --force hinzuzufügen

npm rebuild node-sass --force
12
user3890355

Ich hatte das gleiche Problem mit Node v7.4.0 Current (Neueste Funktionen).

Ich habe hier etwas gelesen und Node auf v6.9.4 LTS heruntergestuft. Nachdem npm rebuild node-sass ausgeführt wurde, lud es die Binärdatei herunter und alles begann zu funktionieren.

Binäres Herunterladen von https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-48_binding.node
Download abgeschlossen .] - :
Binärdateien in D:\xxx\xxx-xxx\node_modules\node-sass\vendor\win32-x64-48\binding.node gespeichert
Binäres Caching unter C:\Benutzer\AppData\Roaming\npm-cache\node-sass\3.13.1\win32-x64-48_binding.node`

8
krankuba

Ich hatte das gleiche Problem 

    throw new Error(errors.missingBinary());
    ^

Error: Missing binding /path/to/project/node_modules/node-sass/vendor/linux-x64-47/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 5.x

Found bindings for the following environments:
  - Linux 64-bit with Node 0.10.x
  - Linux 64-bit with Node.js 5.x

Das liegt daran, dass ich npm mit einer anderen nodejs-Version installiert habe. Versuchen Sie, den node_modules-Ordner zu löschen und zu installieren

cd your_proyect
rm -rf node_modules
npm install
npm start or gulp or whatever

Wenn Sie nvm verwenden, tun Sie dies

nvm use stable // or your favorite version
// remove node_module directory
npm install
npm start or gulp or whatever
7
gsalgadotoledo

Führen Sie einfach den Kommentar aus, der es ist.

npm rebuild node-sass

viel spass beim programmieren ...

5
mahendren

Klicken Sie für Visual Studio 2015/2017 mit der rechten Maustaste auf Ihren package.json und klicken Sie auf Pakete wiederherstellen.

Dadurch wird sichergestellt, dass npm aus den externen Tools von Visual Studio Tools ausgeführt wird und die Bindung darauf basierend neu erstellt wird.

Für meinen speziellen Fall funktionierte keine der obigen Antworten. Also, was hat funktioniert: 

rm -rf node_modules 
rm -rf /tmp/* 
rm -rf /root/.npm/node-sass 
npm uninstall --save node-sass 
npm cache clean --force 

npm cache verify, um zu überprüfen, dass sich nichts im Cache befindet

npm install

Obwohl ich nicht versucht habe, die Sequenz zu reproduzieren, war dies eine Kombination der oben genannten.

npm install --save node-sass oder npm install node-sass -g

npm rebuild node-sass
npm install bindings
3
Alex Pandrea

Dies geschieht normalerweise, weil sich die Umgebung seit der Ausführung von npm install..__ geändert hat. Durch Ausführen von npm rebuild node-sass wird die Bindung für die aktuelle Umgebung erstellt.

3
Kisz Na

Ich bin ein Windows 8-Benutzer, der vor kurzem Node auf v8.11.1 und npm auf v6.0.0 aktualisiert hat und mit einem ähnlichen Problem konfrontiert wurde. Nichts hat funktioniert - npm install -g [email protected] oder Löschen des node-sass-Verzeichnisses aus dem Projekt node_modules/ - keiner von ihnen hat für mich gearbeitet.

Der Laravel Mix hat einen Fehler an meine Browserkonsole geworfen, der einen fehlenden Knoten angibt: win32-x64-57. Ich weiß nicht, ob es sich um eine langsamere Internetverbindung handelt oder ob der Knoten während des Updates fehlte.

Daher wiesen mich einige Antworten an, die Node-Sass-Versionen zu betrachten, und ich fand die Lösung.

  1. Schritt 1: Überprüfen Sie Ihre Node-sass-Version mit dem Befehl: npm view node-sass version (der {your version} in Schritt 4)
  2. Schritt 2: Holen Sie sich nach Node-Sass-Releases
  3. Schritt 3: Holen Sie sich Ihr Release und finden Sie den fehlenden Knoten in den Assets, die unter jedem Release aufgeführt sind, und laden Sie die Datei herunter
  4. Schritt 4: Gehen Sie zu C:\Users\{User}\AppData\Roaming\npm-cache\node-sass\{your version}\ Ihres PCs und legen Sie die heruntergeladene .node-Datei im Versionsordner ab

Und du bist fertig.

In meinem Fall war die Node-sass-Version 4.9.0 und der fehlende Knoten war win32-x64-57_binding.node. Ich lud die .node-Datei von 4.9.0 release herunter und folgte Schritt 4.

2
Mayeenul Islam

Dies geschieht, wenn Sie auf Ihrer Arbeitsstation ein Update von Node.js ausführen und Node-sass global verwenden.

Sie sollten also node-sass global deinstallieren

npm uninstall -g node-sass

Und dann müssen Sie es wieder global installieren

npm install -g node-sass
2
Domenico

Dies funktionierte für mich Löschen von node_modules und Wiederherstellen von Paketen aus IDE und dann npm rebuild node-sass

2
Nouman Bhatti

Bitte schreiben Sie den folgenden Befehl in den Root-Ordner.

npm rebuild knotensass

100% funktioniert ...

2
Yogesh Patil

Beantworten Sie diese Frage, wenn Sie dieses oder ein ähnliches Problem feststellen und Docker verwenden.

Mögliche Ursache: Beim Kopieren der aktuellen Dateistruktur in den Docker-Container werden möglicherweise Knotenmodule von einem Betriebssystem auf ein anderes kopiert (z. B. einen Mac-zu-Linux-Container).

Lösung:

Fügen Sie einen .dockerignore hinzu und fügen Sie Folgendes hinzu:

node_modules

Dies führt dazu, dass ein npm install die Bindungen für die Docker-Umgebung und nicht für Ihre lokale Computerumgebung installiert.

2
farrellw

Ein ähnlicher Fehler, den ich bei der Erstellung einer AspNetCore-App mit Visual Studio 2015 Community Edition festgestellt hatte, war:

Node Sass could not find a binding for your current environment: Windows 32-bit with Node.js 5.x
Found bindings for the following environments:
  - Windows 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
    at module.exports ([..]\node_modules\node-sass\lib\binding.js:15:13)
    at Object.<anonymous> ([..]\node_modules\node-sass\lib\index.js:14:35)
    at Module._compile (module.js:397:26)
    at Object.Module._extensions..js (module.js:404:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> ([..]\node_modules\gulp-sass\index.js:187:21)
    at Module._compile (module.js:397:26)

Aus dem obigen Fehler können Sie erkennen, dass die Ursache in einer Versionskonflikt der Bindungen für nodejs lag.

Node Sass konnte keine Bindung für Ihre aktuelle Umgebung finden: Windows 32-Bit mit Node.js 5.x

Bindungen für folgende Umgebungen gefunden: - Windows 64-Bit mit Node.js 6.x

Die Lösung, die ich fand, war zu 

  • Installiere die nodejs Windows Version
  • Fügen Sie in External Web Tools den Pfad für den Knoten js (C:\Programme\nodejs) hinzu (siehe Antwort von Rob Scott). 
  • Verschieben Sie den Knotenjs-Pfad über $ (PATH).
2
Matt R

Ich musste zuerst die neue Standardknotenversion nvm use *** oder nvm install *** auswählen und dann alle in node_modules im Projekt und npm i wieder entfernen.

1
obotezat

Ich hatte das gleiche Problem. Ich habe hier keine passende Lösung gefunden, also habe ich meine gefunden:

Inspiriert durch die @ Rob-Scott-Lösung und andere Hinweise, dass wir zwei Versionen von Node.js installiert haben könnten, ging ich zu C:\Program Files (x86)\nodejs und erkannte, dass ich zusätzlich zur VS-Standardinstallation eine Version von node.js installiert hatte.

Meine Lösung war ziemlich einfach:

  • Gehen Sie zu Tools> Optionen> Projekte und Lösungen> Webpaketverwaltung> Externe Webtools
  • Klicken Sie auf add an entry (am weitesten links vom rechten oberen Block der Schaltflächen).
  • Geben Sie C:\Program Files (x86)\nodejs ein und bestätigen Sie mit enter.
  • Bringe es an die Spitze der Liste
  • Genießen

Wahrscheinlich ist Node.js nicht gut in der PATH-Variable gesetzt, aber dies ist meine sehr schnelle Lösung, meine 2 Cent :)

1
Jean

Aktualisieren Sie einfach Ihren NPM-Cache und: 

npm cache clean --force  
npm install

Im gleichen Fall funktioniert es immer für mich.

UPD: Ihr Problem kann auch durch das Fehlen einer globalen Sasslib verursacht werden.

npm install -g sass
1
AlexK

Dieses Problem hatte ich beim Upgrade von VS 2017 Professional auf Enterprise

  1. Schließen Sie VS
  2. Löschen Sie node_modules
  3. Open VS
  4. Klicken Sie mit der rechten Maustaste auf package.json und wählen Sie "Pakete wiederherstellen" aus.
1
dk_french032

Beim Erstellen eines Docker-Images und beim Versuch, es lokal auszuführen, bin ich auf dieses Problem gestoßen. Sie müssen eine .dockerignore-Datei mit folgendem Inhalt hinzufügen: .DS_Store .git .gitignore .idea log/* target tmp node_modules client/node_modules spec/internal/public/assets public/assets

1
Chris J Boyle

Für Benutzer, die zu nvm from Systemknoten gewechselt sind, kann dieses Problem auftreten, wenn Sie den Ordner ~/.npm und ~/.node-gyp nicht entfernt haben, da die Version des Knotens in ~/.node-gypmöglicherweise unterschiedlich ist. 

In jedem Fall sollten diese Ordner entfernt werden.

0
prasanthv

Installieren Sie Xcode, wenn Sie einen Mac verwenden.

0
eomeroff

Das Problem für mich war, dass der Task Runner Explorer auf die Lösung meines Projekts abzielte. Als ich mithilfe der Dropdown-Liste neben der Task-Runner-Explorer-Schaltfläche zum Aktualisieren zum Projekt selbst wechselte, wurden die relevanten Aufgaben angezeigt.

0
Lewis Hamill

Denken Sie auch daran, die Datei xxx.node (in meinem Fall win32-x64-51) in binding.node umzubenennen und im Ordner xxx (in meinem Fall win32-x64-51) einzufügen.

0
Devdutta Natu

Keine der Installations-/Wiederherstellungslösungen hat das Problem für mich gelöst (mit gulp). 

So habe ich es gelöst:

1) Laden Sie die fehlende Bindungsdatei aus dem Repository herunter.

2) Benennen Sie die Datei binding.node um.

3) Erstellen Sie das Verzeichnis node_modules/node-sass/vendor/darwin-x64-11 (Pfad aus Fehlermeldung), falls es nicht vorhanden ist.

4) Fügen Sie die Bindungsdatei zu node_modules/node-sass/vendor/darwin-x64-11 hinzu. 

0
Don Peat

Dies wurde behoben, indem Java_HOME von x86 in x64 geändert wurde. Maven lief auf x86, aber der Knoten verwendete x64. Entfernen Sie/node und/node_modules und bauen Sie erneut auf.

0

node-sass führt ein Installationsskript aus, um die erforderliche Binärdatei herunterzuladen. Wenn keine Umgebungsvariablen, .npmrc-Variablen oder Prozessargumente festgelegt sind, wird die Binärdatei mithilfe der aktuellen Prozessplattform, Architektur und Node-ABI-Version bestimmt. Wenn Sie also die Knoteninstallation in einer Anwendung ausführen und dann versuchen, Node-sass in einer Anwendung mit einer anderen Plattform/Architektur/ABI auszuführen, wurde die Binärdatei nicht heruntergeladen. Die Lösung besteht darin, die Binärdatei manuell herunterzuladen oder die Binärversion mithilfe einer Umgebungsvariablen (SASS_BINARY_NAME) oder einer .npmrc-Variablen (sass_binary_name) zu korrigieren.

Die Logik dafür finden Sie in der Funktion getBinaryPath in node-sass\lib\extensions.js

0
Tevin

Für mich war es das Maven-War-Plugin, das Filter auf die Dateien angewendet und die Woff-Dateien beschädigt hat.

<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
    <webResources>
        <resource>
            <directory>dist</directory>
            <filtering>true</filtering>
        </resource>
    </webResources>
</configuration>

Entfernen Sie <filter> true </ filter>

Oder wenn Sie eine Filterung benötigen, können Sie Folgendes tun:

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <webResources>
            <resource>
                <directory>dist</directory>
                <excludes>
                    <exclude>assets/**/*</exclude>
                </excludes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>dist</directory>
                <includes>
                    <include>assets/**/*</include>
                </includes>
            </resource>
        </webResources>
    </configuration>
</plugin>
0
Viktor Eriksson

Ich habe alle Methoden ausprobiert, die ich gefunden habe.

Ich habe ein seltsames Verhalten dieses Ordners festgestellt. Als ich versuchte, vom VS-Terminal aus in den Ordner "node_sass" zu "cd", wurde darauf hingewiesen, dass "Ordner nicht gefunden" wurde, aber im Finder angezeigt wurde.

chmod vom VS-Terminal hat den Ordner selbst mit dem Befehl 'Sudo' nicht gefunden.

Ich habe aus nativem MacOs-Terminal chmod-ed gemacht und kurz danach mit Knoten neu aufgebaut.

0
diginix

Antwort von @ core114 ​​schlägt vor, dass das Deinstallieren und Installieren des sass-Pakets wieder für den manuellen Prozess geeignet ist, für automatisierte Bereitstellung/CI/CD Sie jedoch einen generischeren Ansatz benötigen. Was für mich funktioniert hat, ist für Continuos Bereitstellung einer anderen Umgebung:

  1. alten node_modules mit rimraf vor der Bereitstellung entfernen

    rimraf node_modules

  2. sass-Paket in npm package.json aktualisieren und an die Quellcodeverwaltung übergeben. 

Bei der nächsten Bereitstellung wird es automatisch für alle Umgebungen aktualisiert.

0
Pranav Singh

Dies ist etwas, das möglicherweise niemand anderem passiert, aber in meinem Fall trat dieser Fehler auf, als ich mich entschied, mein Projekt neu zu starten (um einem anderen vue.js-Tutorial zu folgen).

Die Schritte, die mein Problem verursachten, waren:

# move my existing project
mv project-name project-name-old
# create a new project
vue create project-name
# run server
npm run server

Das Problem war, dass mein vorheriger Server noch auf einem anderen Terminal-Tab lief. Auf localhost: 8080 war die Seite, die noch angezeigt wurde, das alte Projekt.

Ich musste lediglich den alten Server im Terminal herunterfahren und erneut "npm run serve" ausführen (oder localhost: 8081 anzeigen).

Nur für den Fall, dass dies eine halbe Stunde lang jemanden verwirrt oder für Lachen und Kichern.

0
althras

Überprüfen Sie Ihr System: Hat Ihr System zwei verschiedene Node.js-Installationen?

Wenn Sie node von nodejs installieren, lautet das Standardinstallationsverzeichnis C:\Program Files\nodejs Ich hatte die Knotenversion 6.xx hier installiert.

Überprüfen Sie das VS External-Webtools-Verzeichnis C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External____. Ich hatte die Knotenversion 5.xx dort installiert.

Eine Workaround ist:

  • Erstellen Sie eine Sicherungskopie des C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External-Verzeichnisses.
  • Kopieren Sie den Inhalt des C:\Program Files\nodejs-Verzeichnisses und 
  • einfügen in C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External Directory.
  • Löschen Sie das node_modules-Verzeichnis aus Ihrer Lösung.
  • Führen Sie das Projekt erneut aus. Wenn eine Fehlermeldung angezeigt wird, führen Sie das Projekt erneut aus.

Wenn das nicht klappt

  • Löschen Sie das node_modules-Verzeichnis aus Ihrer Lösung.

HINWEIS: $ ist die Eingabeaufforderung

$  npm install 
…
$ npm run build:dev

Führen Sie das Projekt erneut aus.

0
John Kocer
  1. Löschen Sie den node_modules-Ordner.
  2. Installieren Sie die Abhängigkeiten erneut. (npm i)
0
Shivam Kubde

Ich führe einfach npm rebuild anstelle von npm re-node und sache aus. Ich weiß nicht, was hinter der Magie steckt.

0
Alien13

Öffnen Sie Visual Studio 2017
Gehen Sie zu Extras -> Optionen…
Gehen Sie zu Projekte und Lösungen -> Webpaketverwaltung
Verschieben Sie $ (PATH) an den Anfang dieser Liste und schließen Sie dieses Fenster.
Starten Sie Visual Studio neu.
Dies hat in meinem Fall funktioniert, da meine Knotenversion 11.x ist

0