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.
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
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
J'ai résolu ce problème en supprimant le dossier /node_modules
existant et en exécutant npm update
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
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
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
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.
Ma solution consistait à rétrograder à v0.10.25
(essayez Sudo n 0.10.25
si vous utilisez n
)
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
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
.
J'ai résolu ce problème en mettant à jour mon gcc de 4.4.x à 4.7.x
Pas besoin de Sudo ou de réinstallation. Cela a toujours fonctionné pour moi:
nvm use 0.12.2