2015-04-05 14 views
68

Desidero utilizzare il modulo node-sass nell'applicazione node.js v0.12 per sfruttare le prestazioni di libsass.
Ho eseguito npm i node-sass per installare il modulo, nessun errore fino ad ora.
associazioni libsass non trovate quando si utilizza node-sass nel nodo

Ora il caos inizia:
Se mi basta aprire il REPL in un terminale per provare node-sass poi tutto funziona bene, ma se includo nei miei file di progetto e corro node myfile.js quindi ottengo il seguente messaggio di errore:

Error: `libsass` bindings not found. Try reinstalling `node-sass`? 

descrizione del modulo a npmjs.com afferma che ci potrebbe essere un problema con la risoluzione #!/usr/bin/env node sotto Ubuntu e come risolvere questo problema, ma che non è il caso sulla mia macchina.
Non ho trovato nulla di utile quindi spero che tu possa aiutarmi.

Sto usando il nodo v0.12.2 in Ubuntu 14.10.

P.S .: Ho già provato a reinstallare node-sass ma senza esito positivo. Niente cambia.

+0

Se la risposta di Philipp ha risolto i tuoi problemi, ti preghiamo di accettare. Ha risolto il mio problema. – Jazzy

+0

Mi sono imbattuto in questo all'interno del mio progetto Ionic dopo che ho aggiornato alla versione lode di NodeJS - l'out put indica di eseguire un 'npm rebuild npm di ricostruzione, che ha eliminato l'errore per me/il mio ambiente. – Cody

risposta

113

probabilmente hai provato a reinstallare il nodo-sass durante l'utilizzo

npm install node-sass 

o

npm uninstall node-sass 
npm install node-sass 

Ma nodo-Sass è una versione C di Sass. Devi usare npm rebuild:

npm rebuild node-sass 
+3

Questo ha funzionato anche per me, mi interessa spiegare perché? :) – Sebastian

+73

Non ha funzionato per me. – code

+8

Quando provo il comando di ricostruzione ottengo l'errore 'Errore: Impossibile trovare Python eseguibile "python" ... Non sono sicuro che il mio sia una versione C di Sass – Edd

20

Ho risolto questo problema eliminando la cartella esistente /node_modules e funzionante npm update

+1

ha provato questo in realtà, ma in questo caso il/node_modules era sotto controllo SVN ... eliminando la directory ha gettato l'albero SVN fuori sincrono. Altrimenti è un'opzione piuttosto buona! – JsusSalv

+0

Anche a me capita di tanto in tanto, e l'eliminazione di 'node_modules' e il riavvio di' npm install' funziona anche per me. – Geo242

+6

Il controllo del codice sorgente è un brutto posto per memorizzare le dipendenze per questo motivo! Richiede il passo completo di tutti i tuoi ambienti. 'package.json' è progettato per descrivere le tue dipendenze, e dovresti usare qualcos'altro per installare le tue dipendenze sulle tue scatole. (avendo uno script che chiama npm install, o un container docker, o oo) – AnilRedshift

1

Per me, questo problema è stato causato nel mio sistema di compilazione (Travis CI) facendo qualcosa tipo di stupido nel mio file .travis.yml. In effetti, stavo chiamando npm installprima delnvm use 0.12 e questo stava causando la creazione di node-sass per 0.10 anziché 0.12. La mia soluzione stava semplicemente spostando nvm use dalla sezione del file .travis.yml prima del comando npm install, che si trovava nella sezione before_install.

2

La mia soluzione era quella di effettuare il downgrade a v0.10.25 (provate sudo n 0.10.25 se si utilizza n)

8

Questa soluzione (http://forum.ionicframework.com/t/error-running-gulp-sass/32311/20) ha lavorato mi formare.

Partendo da questa configurazione:

Cordova CLI: 5.3.3 versione Gulp: CLI versione 3.9.0 Gulp locale: locale versione 3.9.0 ionico Versione: 1.1.0 ionico CLI Versione: 1.6 .5 Versione app ionica lib: 0.3.9 versione ios-deploy: non installata versione ios-sim: 5.0.1 OS: Mac OS X Yosemite Node Versione: v4.1.1 versione Xcode: versione Xcode 6.4 Build 6E35b

ho trovato una soluzione per evitare di usare il comando 'sudo'. Abbiamo bisogno prima di fissare i permessi di npm che seguono questo: https://docs.npmjs.com/getting-started/fixing-npm-permissions e le autorizzazioni di fissaggio per Nodo qui: http://mawaha.com/permission-fix-node-js/ Dopo questo possiamo controllare e reinstallare il software senza 'sudo' per npm, n o ionico.

Ho seguito questo passo:

npm install -g n 
rm -R node_modules/ 
npm install node-[email protected] 
npm -g install [email protected] 
npm uninstall gulp-sass 
npm install [email protected] 
npm rebuild node-sass 
ionic setup sass 

Perché [email protected]? Perché funziona con l'ultima versione ionica: https://github.com/driftyco/ionic/pull/4449

+0

Grazie mille così tanto così tanto. Finalmente riparato dopo 2 ore <3 –

266

Se si utilizza 4.x nodo o poi allora avete bisogno di reinstallare gulp-Sass con:

npm uninstall --save-dev gulp-sass 
npm install --save-dev [email protected] 
+2

Grazie! Ho sempre dimenticato come risolvere questo problema, e questa è stata di gran lunga la soluzione più semplice e veloce. – natdico

+3

Ho risolto il problema! È stato il risultato dell'aggiornamento del nodo in modo significativo. – ClickerMonkey

+0

Non mi è piaciuto, ma ho semplicemente cambiato il numero di versione nel file package.json manualmente in '2.1.0' da' 1.x.x'. –

1

questo è stato un problema di versione nodo per me, provare a utilizzare NVM fare marcia indietro i tuoi versi su qualcosa di simile: 0.10.32. Questo ha funzionato per me. Stavo eseguendo 4.2.2

3

Ho risolto questo per creare la directory giusta con il file binding.node specificato. È possibile scaricare le associazioni da github

https://github.com/sass/node-sass-binaries

Guardate nel messaggio di errore il percorso in cui si cerca di trovare il legame. Nel mio caso:

C: \ Users \ Martijn \ Documenti \ node_modules \ gulp-sass \ node_modules \ node-sass \ vendor \ win32-x64-46

Così ho creare questa mappa win32-x64-46 e copiare il vincolante da github in

4

Combinando le due risposte di cui sopra ha funzionato per me, più le aggiunte:.

sudo npm uninstall --save gulp-sass 
npm install --save [email protected] 
npm update 
npm rebuild node-sass 
0

Non c'è bisogno di sudo o reinstallazioni. Questo ha sempre funzionato per me:

nvm use 0.12.2