web-dev-qa-db-fra.com

liaisons libsass non trouvées lors de l'utilisation de node-sass dans nodejs

Je souhaite utiliser le module node-sass dans mon application node.js v0.12 pour bénéficier des performances de libsass.
J'ai exécuté npm i node-sass pour installer le module, aucune erreur jusqu'à présent.

Maintenant le désordre commence:
Si je viens d’ouvrir la REPL dans un terminal pour essayer node-sass, tout se passera bien, mais si je l’inclus dans mes fichiers de projet et que j’exécute node myfile.js, le message d’erreur suivant s’affiche:

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

La description du module dans npmjs.com indique qu'il pourrait y avoir un problème avec la résolution de #!/usr/bin/env node sous Ubuntu et comment résoudre ce problème, mais ce n'est pas le cas sur ma machine.
Je n'ai rien trouvé d'utile, alors j'espère que vous pourrez m'aider.

J'utilise le noeud v0.12.2 sous Ubuntu 14.10.

P.S .: J'ai déjà essayé de réinstaller node-sass mais sans succès. Rien ne change.

76
TorbenJ

Vous avez probablement essayé de réinstaller node-sass en utilisant 

npm install node-sass

ou

npm uninstall node-sass
npm install node-sass

Mais node-sass est une version C de Sass. Vous devez utiliser npm rebuild :

npm rebuild node-sass
116
Philipp Andreychev

Si vous utilisez le noeud 4.x ou une version ultérieure, vous devez réinstaller gulp-sass avec:

npm uninstall --save-dev gulp-sass
npm install --save-dev gulp-sass@2
272
Wilson Silva

J'ai résolu ce problème en supprimant le dossier /node_modules existant et en exécutant npm update

20
Dallas Clark

Cette solution de contournement ( http://forum.ionicframework.com/t/error- running-gulp-sass/32311/20 ) a fonctionné en moi. 

À partir de cette configuration:

Cordova CLI: 5.3.3 Version Gulp: Version CLI 3.9.0 Gulp local: Version locale 3.9.0 Version ionique: 1.1.0 Ionic Version CLI: 1.6.5 Version Ionic App Lib: 0.3.9 Version ios-deploy: non installée Version ios-sim: 5.0.1 OS: Mac OS X Yosemite Version du noeud: v4.1.1 Version Xcode: Xcode 6.4 Version Build 6E35b 

J'ai trouvé une solution pour éviter d'utiliser la commande 'Sudo'. Nous devons au préalable corriger les autorisations npm après: https://docs.npmjs.com/getting-started/fixing-npm-permissions et la fixation des autorisations pour Node ici: http://mawaha.com/ permission-fix-node-js/ Après cela, nous pouvons vérifier et réinstaller le logiciel sans 'Sudo' pour npm, n ou ionic.

J'ai suivi cette étape:

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

Pourquoi [email protected]? Parce que cela fonctionne avec la dernière version ionique: https://github.com/driftyco/ionic/pull/4449

8
Francesco

C’est la seule solution qui a fonctionné pour moi,

Sudo npm install -g n
Sudo n 0.12.7
npm install node-sass@2
Sudo npm -g install node-gyp@3
npm rebuild node-sass
8
Stranger

La combinaison des deux réponses ci-dessus a fonctionné pour moi, plus des ajouts:

Sudo npm uninstall --save gulp-sass
npm install --save gulp-sass@2
npm update
npm rebuild node-sass
4
Jadeye

J'ai résolu ceci pour créer le bon répertoire avec le fichier binding.node spécifié. Vous pouvez télécharger les fixations depuis github 

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

Recherchez dans le message d'erreur le chemin où il tente de trouver la liaison. Dans mon cas:

C:\Utilisateurs\Martijn\Documents\Modules_noeud\gulp-sass\Modules_noeud\node-sass\vendor\win32-x64-46

Je crée donc cette carte win32-x64-46 et copie la liaison de github au format.

3
MartijnBrands

Ma solution consistait à rétrograder à v0.10.25 (essayez Sudo n 0.10.25 si vous utilisez n)

2
nathanhleung

C’était un problème de version de nœud pour moi. Essayez d’utiliser nvm pour revenir en arrière sur votre version à un niveau du type: 0.10.32. Cela a fonctionné pour moi. Je courais 4.2.2

1
Kevin Alwell

Pour moi, ce problème a été causé dans mon système de construction (Travis CI) en faisant quelque chose de stupide dans mon fichier .travis.yml. En fait, j’appelais npm install avant nvm use 0.12, ce qui entraînait la création de node-sass pour 0.10 au lieu de 0.12. Ma solution consistait simplement à déplacer nvm use de la section .travis.yml du fichier before_script avant la commande npm install, qui se trouvait dans la section before_install.

1
Alan H.

J'ai résolu ce problème en mettant à jour mon gcc de 4.4.x à 4.7.x

0
worldask

Pas besoin de Sudo ou de réinstallation. Cela a toujours fonctionné pour moi:

nvm use 0.12.2
0
alexfigtree