Il nodo Sass non è riuscito a trovare un'associazione per l'ambiente corrente


499

Sto riscontrando problemi nella creazione di un'app perché node-sass continua a non riuscire con l'errore.

ERRORE in Missing binding /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node
nodo Sass non è riuscito a trovare un'associazione per il tuo ambiente attuale: OS X 64 bit con nodo 0.10.x

Ho provato a correre

npm rebuild node-sass

che dice

Il binario va bene; uscire.

Durante la corsa node -v ottengo v6.2.2

Che è diverso da ciò che dice l'errore sass "Nodo 0.10.x". Non riesco a capire perché stia ottenendo la versione sbagliata. Ho anche provato a rimuovere la cartella node_modules e eseguire npm update o npm install, entrambi i quali non hanno risolto il problema. Qualche idea?


8
Stai usando un gestore versione nodo come nvm? Se ci sei a volte rovina alcuni dei percorsi del modulo npm e loro provano a usare una versione, diversa da quella corrente. Altrimenti potresti sempre provare a rimuovere la node_modulescartella e installare di nuovo le dipendenze
Vasil Dininski,

2
Ehi, non sto usando NVV e ho provato il passaggio di rimozione / reinstallazione. senza fortuna.
martedì

qual è il tuo ambiente di sviluppo? usi VS.NET 2105?
Mike Anderson,

@VasilDininski Sto usando NVM, cosa devo fare?
Subkhan Sarif

1
Apri Visual Studio 2017 Vai a Strumenti -> Opzioni ... Vai a Progetti e soluzioni -> Gestione dei pacchetti Web sposta $ (PERCORSO) in cima all'elenco e chiudi quella finestra. Nel mio caso questa soluzione ha funzionato perché la mia versione del nodo è 11.x
Già giàkenindeed

Risposte:


721

Ho avuto lo stesso problema

C'è un errore nel tuo gulpfile:
Errore: collegamento mancante E: \ allapp \ badshaindiancuisine \ node_module \ node-sass \ vendor \ win32-x64-46 \ binding.node
nodo Sass non è riuscito a trovare un'associazione per l'ambiente corrente: Windows 64 -bit con Node.js 4.x

Collegamenti trovati per il seguente ambiente:
    - OS X 64-bit con Node.js 4.x

Come risolvere il mio problema

Accedendo alla cartella del progetto ed eseguendo:

npm rebuild node-sass

6
Inizialmente funzionava ma continuava ad avere problemi. Quindi, ho /usr/local/lib/usato CMD + MAIUSC + G nel finder e ho rinominato la cartella node-sass. Quindi corse npm install node-sass -g. quello riparato. Sono su Mac OS
IsmailS

Stavo affrontando questo problema dopo aver aggiornato nodejs a 8.xx e questo ha risolto il problema. Grazie mille! Apprezzato!
ChiragMS,

2
Non funziona Nodo: v10.7.0 nodo-sass: v3.13.1. Dice che il mio ambiente attuale è Windows a 32 bit con nodo 0.10.x che semplicemente non è vero.
Bardicer,

Funzionava in Windows 7 con il nodo 10.14 LTS e npm 6.4.1.
santon,

9
Il primo passo sarebbe quello di eliminare il tuo node_modulesed eseguire npm installinvece di ricostruire il tuo nodo-sass.
Nikhil Nanjappa,

295

Nota: sto usando VS 2015, Windows 7 a 64 bit.

Funziona anche per VS 2017 e VS 2019 (dalle risposte a questo post)

Task Runner Explorer non può caricare le attività

Per VS 2015

  • Vai a: Strumenti> Opzioni> Progetti e soluzioni> Strumenti Web esterni

Per VS 2017 (.3)

  • Strumenti> Opzioni> Progetti e soluzioni> Gestione dei pacchetti Web> Strumenti Web esterni (per @nothrow)

In VS 2017 e 2019, devi anche mettere $ (PERCORSO) sopra $ (VSINSTALLERDIR) \ Web \ External


  • Riordinare in modo che $ (PERCORSO) sia superiore a $ (DevEnvDir) \ Extensions \ Microsoft \ Web Tools \ External

inserisci qui la descrizione dell'immagine


L'eliminazione node_modulese l'esecuzione npm installe quindi npm rebuild node-sass non ha fatto nulla .


5
Se stai usando VS2015 dovresti assolutamente apportare le modifiche descritte in questa risposta. Probabilmente è tutto ciò che dovrai fare per risolvere questo problema.
Bonneville,

12
Questo ha funzionato anche con una nuova installazione di VS2017.
sarin

8
In VS2017.3, il percorso per l'impostazione èTools > Options > Projects and Solutions > Web Package Management > External Web Tools
non

6
accidenti, non lo
capirei

7
Posso confermare, questa è ancora una cosa in VS 2019.
JamesT

140

Ho avuto lo stesso problema in un ambiente Windows, ricevendo il seguente errore:

Errore: associazione mancante C: \ Development {ProjectName} \ node_modules \ node-sass \ vendor \ win32-ia32-47 \ binding.node Il
nodo Sass non è riuscito a trovare un'associazione per l'ambiente corrente: Windows a 32 bit con Node.js 5 .x Collegamenti
trovati per i seguenti ambienti:
   - Windows 64 bit con Node.js 6.x

Nessuno dei npmcomandi elencati nelle altre risposte qui ( npm install,npm rebuild node-sass , ecc) ha funzionato.

Invece, ho dovuto scaricare l'associazione mancante e posizionarla nella cartella di destinazione appropriata.

I collegamenti possono essere trovati su git . Abbina il file al nome della cartella identificato dopo /node_modules/node-sass/vendor/nel messaggio di errore ("darwin-x64-11" nel tuo caso, quindi desideri che ildarwin-x64-11_binding.node file).

Crea la cartella mancante nel tuo progetto ( /node_modules/node-sass/vendor/darwin-x64-11), copia il .nodefile nella nuova directory e rinominalo inbinding.node .

URL di rilascio nodo-sass: https://github.com/sass/node-sass/releases


3
Ha funzionato anche per me, grazie! Ho provato a ripulire node_modules, eliminare cache, rifraf, ricostruire node-sass, ricostruire da VS2015 anziché dalla riga di comando con npm e alla fine questo ha risolto il problema.
Artur Carvalho,

1
@ JanCiołek L'ho fatto solo una volta, quindi non ho mai dovuto rifarlo. Non sono sicuro se fosse specifico della versione o se ci fosse solo un problema con l'installazione specifica, ma non ho trovato una soluzione migliore (le altre risposte qui non hanno funzionato per me). Ingombrante o no, sembrava essere la soluzione necessaria per alcune variazioni di questo problema.
Beofett,

1
@Beofett Questo bug ha mangiato molto del mio tempo, ho fatto tutto ciò che è stato menzionato in questa discussione ma dimentico di eseguire la compilazione. Grazie!
Jan Ciołek,

4
Questa è l'unica risposta per me, ma ho trovato il mio legame in github.com/sass/node-sass/releases anziché nell'URL collegato. Saluti
Clapas,

2
Grazie @ Beofett. La tua risposta mi ha salvato per eseguire il mio progetto Ionic in Windows e Mac OSX.
Marcus Crisostomo,

138

Ha funzionato per me:

Basta eliminare la cartella node-sass ed eseguire npm install.


4
Questo funziona anche per me. Chiaramente un conflitto di versione del nodo. Grazie!
Liz Lemon,

1
Ho dovuto eliminarlo nella seguente directory: C: \ Users \ nome_utente \ AppData \ Roaming \ npm-cache
Matt

7
Questo ha funzionato! npm rebuild node-sassNon ha funzionato per me. (Mac con WebStorm)
Jackpile,

3
Questa è l'unica soluzione che ha funzionato per me! npm rebuild node-sass --forcenon ha funzionato neanche.
ciao

Questo dovrebbe essere contrassegnato come risposta. Fino ad ora non avevo idea del perché la mia soluzione continuasse a puntare a una versione superiore del nodo e continuasse a darmi un messaggio di errore su nodesass. Ho fatto un passo nella pipeline di Azure per forzare la versione del nodo a quella che desidero. Ora posso rimuovere quel passaggio!
James Blackburn,

117

Esegui solo: npm rebuild node-sass --force


Se quanto sopra per qualche motivo non ha funzionato per te, prova questo:

  1. Elimina node-sasscartella sottonode_modules
  2. npm install

Nel mio caso, inoltre, non è stato possibile trovare Python.

La seguente procedura ha risolto il problema (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

1
Quanto sopra ha funzionato per me, anche se si è verificato due volte in due diverse app in due diverse cartelle. L'installazione di Python è stata una tantum (non era necessaria quando ho ricevuto l'errore una seconda volta sull'altra mia app) e non avevo bisogno del comando finale npm run build (non almeno esplicitamente) ma avevo bisogno di eseguire la ricostruzione - Forza due volte per entrambe le mie app.
Greg Trevellick,

31

npm rebuild node-sass --force

Oppure, se si utilizza node-sass all'interno di un contenitore:

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

Questo errore si verifica quando node-sass non ha l'associazione corretta per il sistema operativo corrente.

Se si utilizza Docker, questo errore si verifica in genere quando si aggiunge node_modules direttamente al file system contenitore nel Dockerfile (o li si monta utilizzando un volume Docker).

L'architettura del contenitore è probabilmente diversa dal sistema operativo corrente. Ad esempio, ho installato node-sass su macOS ma il mio contenitore esegue Ubuntu.

Se si forza la ricostruzione di node-sass dall'interno del contenitore, node-sass scaricherà i collegamenti corretti per il sistema operativo del contenitore.

Vedi il mio caso di riproduzione per saperne di più.


1
Affrontare lo stesso problema con ambienti diversi: - sviluppo sotto MacOS per test unitari - sviluppo usando docker-compose (per interazioni di sistema complete) - prodotto con sistema operativo basato su alpine; Il montaggio (o meno) e npm install(o meno) nella finestra mobile è problematico quando si hanno moduli dipendenti dall'architettura: ottenere binari darwin o linux a seconda di dove si npm iverifica per moduli NodeJS come node-sass, o@google-cloud/pubsub
Laurent

Grazie per aver menzionato la soluzione per docker, questo è esattamente ciò che l'ha risolto per me!
Joshua Soileau,

Avevo /node_modulesmontato il quale era stato fissato nel contenitore /app/node_modules. Anche se il mio NODE_PATHera /node_modules(che esisteva) e avrebbe dovuto essere in un posto diverso ..., ha iniziato a causare in modo casuale problemi. Avevo installato in entrambi i posti in modo che i miei sviluppatori per i più carini funzionassero con il mio vscode. whoops. cose strane. Grazie per la menzione sulla finestra mobile <3
Nick Brady,

25

Ho avuto un problema simile e il motivo era che nella mia macchina erano installate due versioni di Node: una "globale" e un'altra a livello di progetto. Sass costruirà correttamente solo se la build Gulp è in esecuzione con la versione 4.x di Node.js, quindi assicurati di aggiornare la versione di Node che stai utilizzando.

PS: se rimuovi completamente la cartella node_modules nel tuo progetto e ricostruisci da zero, npm scaricherà le dipendenze corrette per il tuo sistema attuale e la versione del nodo.


grazie a Dio per questo. In realtà ho provato a eseguire il downgrade del nodo sul mio macbook e poi ho rinunciato dopo mezz'ora
Cpt. Senkfuss,

17

in alcuni casi è necessario disinstallare e installare la libreria node-sass. Provare:

npm uninstall --save node-sass

e

npm install --save node-sass

guarda come funziona, link Stack qui


13

Prova ad aggiungere il suffisso --force

npm rebuild node-sass --force

1
Ha funzionato per me. Grazie.
jpcmf80,

12

Per il mio caso particolare nessuna delle risposte di cui sopra ha funzionato. Quindi cosa ha funzionato:

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 per verificare che non sia rimasto nulla nella cache

npm install

Anche se non ho provato a riprodurre la sequenza è stata una combinazione di quanto sopra che ha funzionato. Inoltre puoi anche provare:

npm install --save node-sass o npm install node-sass -g

npm rebuild node-sass
npm install bindings

11

* Risposta relativa alla finestra mobile qui *

Rispondi se stai riscontrando questo problema o qualcosa di simile e stai utilizzando Docker.

Causa: quando si copia sulla struttura di file corrente all'interno del contenitore Docker, è possibile che si stia copiando i moduli nodo da un sistema operativo a un altro (ad esempio un contenitore da Mac a Linux).

Soluzione:

Aggiungi un .dockerignoree dentro aggiungi:

node_modules

Ciò causerà l' npm installinstallazione dei binding per l'ambiente docker anziché per l'ambiente del computer locale.


9

Ho avuto lo stesso problema

    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

Questo perché ho installato npm usando una versione differente di nodejs, provando a cancellare l'installazione e l'avvio della cartella node_modules

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

Se stai usando NVV, fallo

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

8

Ho avuto lo stesso problema con Node v7.4.0 Current (ultime funzionalità).

Ho letto qui e ho eseguito il downgrade di Node alla v6.9.4 LTS e dopo npm rebuild node-sassaverlo scaricato ha scaricato il binario e tutto ha iniziato a funzionare.

Download binario da https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-48_binding.node
Download completato.] -:
Binario salvato in D: \ xxx \ xxx-xxx \ node_modules \ node-sass \ vendor \ win32-x64-48 \ binding.node
Memorizzazione nella cache binaria in C: \ Users \ user \ AppData \ Roaming \ npm-cache \ node-sass \ 3.13.1 \ win32-x64-48_binding.node `


7

node-sassil modulo del nodo utilizza un darwinfile binario che dipende dalla versione del nodo. Questo problema si verifica quando il file binario non viene scaricato o viene scaricato un file binario errato.

Errore sass nodo

Reinstallare i moduli nodo scaricherà il binario previsto di node-sass: -

Per utenti Mac:

rm -rf node_modules
npm cache clean --force
npm i
npm rebuild node-sass --force

Per utenti Windows:

rmdir node_modules
npm cache clean --force
npm i
npm rebuild node-sass --force

ma per alcuni utenti, è necessario verificare la compatibilità della versione del nodo con la versione nodo-sass. Renderlo compatibile usando la tabella seguente ed esegui di nuovo i comandi sopra per risolvere questo problema.

Versione nodo-sass compatibile con Nodo JS

Se il problema persiste, controllare l'elenco degli ambienti supportati da node-sass: - https://github.com/sass/node-sass/releases/


5

Per Visual Studio 2015/2017, fare clic con il tasto destro del mouse su package.json e fare clic su Ripristina pacchetti.

Ciò assicurerà che l'npm dagli strumenti esterni di Visual Studio Tools sia eseguito e l'associazione verrà ricostruita in base a quello.


Soluzione semplice e piacevole, e l'unica che ha funzionato tra le poche sopra che ho provato. Grazie!
Eli Gassert,

4

Questo succede quando nella tua workstation esegui un aggiornamento di Node.js e stai utilizzando node-sass a livello globale.

Quindi dovresti disinstallare node-sass a livello globale

npm uninstall -g node-sass

E poi devi installarlo di nuovo a livello globale, di nuovo

npm install -g node-sass

Buona spiegazione
Michael Czechowski,

@ Fay007 potresti fornire maggiori informazioni? Hai un errore? Fammi sapere
Domenico,

4

Basta aggiornare la cache npm e:

npm cache clean --force  
npm install

Funziona sempre per me nello stesso caso.

UPD: il tuo problema potrebbe anche essere dovuto all'assenza di un sasslib globale.

npm install -g sass

4

Esegui il commento e basta.

npm ricostruisce node-sass

goditi il ​​tuo codice ...


L'OP ha detto che ci ha provato e non ha funzionato. E anche io, e non ha funzionato neanche per me. Invece ho dovuto eseguire il downgrade della versione del nodo che stavo eseguendo.
Adrian Redgers,

4

Le dipendenze post per node-sass non vengono installate senza package.json all'interno di node-sass

Eseguendolo risolto manualmente per me

node node_modules/node-sass/scripts/install.js 

credito: link


Grazie per questo, questo ha risolto perfettamente il mio problema! :)
Lewis Clarke,

Sono contento di sapere :)
Mukundhan il

3

Questo di solito accade perché l'ambiente è cambiato da quando è in esecuzione npm install. L'esecuzione npm rebuild node-sasscrea l'associazione per l'ambiente corrente.


3

Sono un utente di Windows 8, recentemente aggiornato Node v8.11.1e npm v6.0.0e affrontato un problema simile. Non ha funzionato nulla npm install -g node-sass@latesto l'eliminazione della node-sassdirectory dal progettonode_modules/ - nessuno di loro ha funzionato per me.

Laravel Mix stava lanciando un errore sulla mia console del browser dicendo un nodo mancante: win32-x64-57 . Non so se è perché una connessione Internet più lenta o qualcosa del genere, il nodo mancava durante l'aggiornamento.

Quindi alcune delle risposte mi hanno indirizzato a guardare le versioni di Node-Sass e ho trovato la soluzione.

  1. Passaggio 1: controllare la versione del nodo in uso utilizzando il comando: npm view node-sass version(il {your version}passaggio 4)
  2. Passaggio 2: accedere alle versioni di Node-Sass
  3. Passaggio 3: ottenere il rilascio e trovare il nodo mancante negli asset elencati in ogni rilascio e scaricare il file
  4. Passaggio 4: accedi al tuo PC C:\Users\{User}\AppData\Roaming\npm-cache\node-sass\{your version}\e inserisci il .nodefile scaricato nella cartella della versione

E il gioco è fatto.

Nel mio caso la versione node-sass era 4.9.0e il nodo mancante era win32-x64-57_binding.node, quindi ho scaricato il .nodefile dalla versione 4.9.0 e ho seguito il passaggio 4.


2

Un errore simile che ho riscontrato con Visual Studio 2015 Community Edition durante la creazione di un'app AspNetCore è stato:

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)

Dall'errore sopra riportato si può vedere che la causa era dovuta a una mancata corrispondenza della versione sui binding per nodejs.

Il nodo Sass non è riuscito a trovare un'associazione per l'ambiente corrente: Windows a 32 bit con Node.js 5.x

Collegamenti trovati per i seguenti ambienti: - Windows a 64 bit con Node.js 6.x

La soluzione che ho trovato è stata

  • Installa il versione windows di nodejs ,
  • Aggiungi percorso per nodo js (C: \ Programmi \ nodejs) in Strumenti Web esterni (vedi la risposta di Rob Scott),
  • Sposta il percorso nodejs sopra $ (PERCORSO).

2

Questo ha funzionato per me Eliminare node_modulese quindi ripristinare i pacchetti da IDE e quindinpm rebuild node-sass


2

Ho riscontrato questo problema durante l'aggiornamento da VS 2017 Professional a Enterprise

  1. Chiudi VS
  2. Elimina node_modules
  3. Apri VS
  4. Fare clic con il tasto destro su package.json e selezionare 'ripristina pacchetti'

2

Nessuna delle soluzioni di installazione / ricostruzione ha risolto il problema per me (usando gulp).

Ecco come l'ho risolto:

1) Scarica il file di associazione mancante dal repository .

2) Rinomina il file binding.node.

3) Creare la node_modules/node-sass/vendor/darwin-x64-11directory (percorso dal messaggio di errore) se non esiste.

4) Aggiungi il file di associazione a node_modules/node-sass/vendor/darwin-x64-11


2

Scrivi sotto il comando nella cartella principale.

npm ricostruisce node-sass

100% funziona ...


2

Se il tuo terminale / prompt dei comandi dice:

Il nodo Sass non è riuscito a trovare un'associazione 
per il tuo ambiente attuale: 
OS X 64 bit con nodo 0.10.x

e hai provato i seguenti comandi come:

npm cache clean --force 
Moduli nodo rm -rf 
npm install 
npm ricostruisce node-sass 
npm ricostruisce node-sass

e ancora NIENTE funziona ..

Basta eseguirlo manualmente nel terminale:

nodo node_modules / node-sass / scripts / install.js

ora corri

inizio npm o inizio filato


1
Finalmente! Grazie. Questa è l'unica soluzione che ha funzionato per me finora. Faccio fatica da due giorni. Potresti spiegare qual è la ragione dietro?
burakcalik,

1
SÌ SÌ SÌ! Finalmente! Jackie - Grazie mille.
user2051552

1

node-sass esegue uno script di installazione per scaricare il file binario richiesto. Se non sono presenti variabili di ambiente, variabili .npmrc o argomenti di processo impostati, il binario viene determinato utilizzando la piattaforma di processo corrente, l'architettura e la versione ABI del nodo. Pertanto, se si esegue l'installazione del nodo in un'applicazione e si tenta di eseguire node-sass in un'applicazione con una piattaforma / architettura / ABI diversa, il file binario non sarà scaricato. La soluzione è scaricare manualmente il binario o correggere la versione binaria utilizzando una variabile di ambiente (SASS_BINARY_NAME) o una variabile .npmrc (sass_binary_name)

È possibile visualizzare la logica per questo nella funzione getBinaryPath in node-sass \ lib \ extensions.js


1

Ho avuto lo stesso problema. Non sono riuscito a trovare una soluzione funzionante qui, quindi ho trovato la mia:

Ispirato dalla soluzione @ Rob-Scott e da altri indizi che avremmo potuto installare 2 versioni di Node.js, sono andato a C:\Program Files (x86)\nodejscapire che avevo installato una versione node.js oltre all'installazione predefinita VS.

La mia soluzione era abbastanza semplice:

  • Vai su Strumenti> Opzioni> Progetti e soluzioni> Gestione dei pacchetti Web> Strumenti Web esterni
  • Fai clic su add an entry(più a sinistra del blocco di pulsanti in alto a destra)
  • Invio C:\Program Files (x86)\nodejs, conferma premendoenter
  • Portalo in cima alla lista
  • Godere

Probabilmente Node.js non è impostato bene nella variabile PATH, ma questa è la mia soluzione molto veloce di lavoro, i miei 2 centesimi :)


1

Ho dovuto prima scegliere la nuova versione del nodo predefinito nvm use ***o nvm install ***quindi rimuovere tutto in node_modules nel progetto e di npm inuovo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.