J'utilise VS2015 et Gulp. J'ouvre l'explorateur Task Runner et appuie sur Actualiser, et cela apparaît dans le journal:
Failed to run "C:\Projects\Test\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
Error: `libsass` bindings not found in C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-ia32-11\binding.node. Try reinstalling `node-sass`?
at Object.sass.getBinaryPath (C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\lib\extensions.js:148:11)
at Object.<anonymous> (C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\lib\index.js:16:36)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\Projects\Test\node_modules\gulp-sass\index.js:163:21)
at Module._compile (module.js:456:26)
J'essaie donc d'exécuter cmd.exe /c gulp --tasks-simple
dans PowerShell, dans le même répertoire, et tout fonctionne correctement: une liste de tâches est renvoyée.
Je peux aussi très bien exécuter mes tâches liées à SASS. Je ne comprends donc pas pourquoi cela se plaint du SASS lorsqu'il est exécuté via VS mais pas directement sur la ligne de commande.
J'ai eu le même problème lors de la migration de VS2013 récemment.
Comme Josh l'a noté dans son commentaire ici Visual Studio 2015 est livré avec une version plus ancienne de Node. Si vous ne voulez pas vous en tenir à la version de Node intégrée à Visual Studio, vous pouvez lui indiquer d'utiliser la version déjà installée.
$(PATH)
soit supérieur à $(DevEnvDir)\Extensions\Microsoft\Web Tools\External
Cela s'applique également à d'autres outils tels que Grunt, Bower et Gulp.
Trouvé cette solution par Mads Kristensen ici .
Pour Visual Studio 2017, nous pouvons trouver le paramètre à
Tools > Options > Projects and Solutions > Web Package Management > External Web Tools
Il semble que gulp-sass cherche node-sass dans un endroit différent. Voici une solution temporaire.
créer un nouveau répertoire nommé win32-ia32-11 dans c:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\vendor \
Goto https://github.com/sass/node-sass-binaries et téléchargez win32-ia32-11_binding.node.
Copiez le fichier win32-ia32-11_binding.node dans c:\Projects\Test\node_modules\gulp-sass\noeud_modules\node-sass\vendor\win32-ia32-11\et renommez-le en binding.node
J'ai essayé toutes les solutions ci-dessus mais cela ne fonctionne pas et j'ai trouvé une autre solution ici .
Vous devez forcer Visual Studio à s'exécuter avec votre version de Node.js:
Tools
> Options
dans Visual Studio 2015Projects and Solutions
> External Web Tools
C:\Program Files\nodejs
node-sass exécute un script d'installation pour télécharger le binaire requis. S'il n'y a pas de variables d'environnement, de variables .npmrc ou d'arguments de processus définis, le binaire est déterminé à l'aide de la plate-forme de processus actuelle, de l'architecture et de la version de Node ABI. Par conséquent, si vous exécutez l’installation de nœud dans une application, puis que vous essayez d’exécuter node-sass dans une application avec une plate-forme/architecture/ABI différente, le fichier binaire n’a pas été téléchargé. La solution consiste à télécharger manuellement le binaire ou à corriger la version binaire à l'aide d'une variable d'environnement (SASS_BINARY_NAME) ou d'une variable .npmrc (sass_binary_name).
Vous pouvez voir la logique à cet égard dans la fonction getBinaryPath de la page node-sass\lib\extensions.js
Voir aussi: Le nœud Sass n'a pas trouvé de liaison pour votre environnement actuel
La seule solution qui a résolu mon problème était de réinstaller NPM Task Runner . Vous pouvez le télécharger à partir du lien suivant sur le marché.
https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner