Je rencontre des problèmes pour créer une application parce que node-sass échoue constamment avec l'erreur.
ERREUR dans une liaison manquante /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node
Nœud Sass n'a pas trouvé de liaison pour votre environnement actuel: OS X 64 bits avec Node 0.10.x
J'ai essayé de courir
npm rebuild node-sass
qui dit
Binaire c'est bien; sortant.
Lors de l'exécution de node -v
, je reçois la v6.2.2
Ce qui est différent de ce que dit l'erreur sass "Node 0.10.x". Je n'arrive pas à comprendre pourquoi on obtient la mauvaise version. J'ai également essayé de supprimer le dossier node_modules et d'exécuter npm update ou npm install, ce qui n'a pas résolu le problème. Des idées?
J'ai eu le même problème
Il y a une erreur dans votre fichier gulp:
Erreur: liaison manquante E:\allapp\badshaindiancuisine\node_module\node-sass\vendor\win32-x64-46\binding.node
Nœud Sass n'a pas trouvé de liaison pour votre environnement actuel: Windows 64 bits avec Node.js 4.xLiaisons trouvées pour l'environnement suivant:
- OS X 64 bits avec Node.js 4.x
Comment résoudre mon problème
En allant dans le dossier du projet puis exécutez:
npm rebuild node-sass
Remarque J'utilise VS 2015, Windows 7 64 bits.
Fonctionne également pour VS 2017 (à partir des réponses à ce message)
Task Runner Explorer ne peut pas charger de tâches
Pour VS 2015
Pour VS 2017 (.3)
Dans VS 2017, vous devez également placer $ (PATH) au-dessus de $ (VSINSTALLERDIR)\Web\External.
Supprimer node_modules
et exécuter npm install
puis npm rebuild node-sass
n'a rien fait.
J'ai eu le même problème dans un environnement Windows, en recevant l'erreur suivante:
Erreur: liaison manquante C:\Development {ProjectName}\node_modules\node-sass\vendor\win32-ia32-47\binding.node
Nœud Sass n'a pas trouvé de liaison pour votre environnement actuel: Windows 32 bits avec Node.js 5.x
Liaisons trouvées pour les environnements suivants:
- Windows 64 bits avec Node.js 6.x
Aucune des commandes npm
répertoriées dans les autres réponses ici (npm install
, npm rebuild node-sass
, etc.) n'a fonctionné.
Au lieu de cela, je devais télécharger la liaison manquante et la placer dans le dossier de destination approprié.
Les liaisons peuvent être trouvées sur git . Faites correspondre le fichier avec le nom de dossier identifié après /node_modules/node-sass/vendor/
dans votre message d'erreur ("darwin-x64-11" dans votre cas, de sorte que vous souhaitiez le fichier darwin-x64-11_binding.node
).
Créez le dossier manquant dans votre projet (/node_modules/node-sass/vendor/darwin-x64-11
), copiez le fichier .node
dans le nouveau répertoire et renommez-le en binding.node
.
URL de version de Node-sass: https://github.com/sass/node-sass/releases
A travaillé pour moi:
Supprimez simplement le dossier node-sass et exécutez npm install .
Il suffit d'exécuter la commande suivante:
npm rebuild node-sass --force
Dans mon cas, il ne pouvait pas non plus trouver Python
.
La procédure suivante a résolu le problème (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
J'ai eu un problème similaire et la raison était qu'il y avait deux versions de Node installées sur ma machine: une "globale" et une autre au niveau du projet . Sass construira correctement uniquement si la construction de Gulp s'exécute sous Node. js 4.x, assurez-vous donc de mettre à niveau la version de Node que vous utilisez.
PS: Si vous supprimez complètement le dossier node_modules de votre projet et le reconstruisez à partir de zéro, npm téléchargera les dépendances correctes pour votre version actuelle du système et du nœud.
npm rebuild node-sass --force
Ou, si vous utilisez node-sass dans un conteneur:
docker exec <container-id> npm rebuild node-sass --force
Cette erreur se produit lorsque node-sass n'a pas la liaison correcte pour le système d'exploitation actuel.
D'après mon expérience, cela se produit généralement lorsque vous ajoutez node_modules
directement au système de fichiers du conteneur dans votre fichier Docker (ou que vous les montez à l'aide d'un volume Docker). En effet, votre architecture de conteneur est souvent différente de votre système d'exploitation actuel. Par exemple, j'ai installé node-sass sur macOS mais mon conteneur utilise Ubuntu.
Si vous forcez la reconstruction de node-sass à partir du conteneur, node-sass téléchargera les liaisons appropriées pour le système d'exploitation du conteneur.
Voir mon cas de repro pour en savoir plus.
dans certains cas, vous devez désinstaller et installer la bibliothèque node-sass. Essayer:
npm uninstall --save node-sass
et
npm install --save node-sass
regarde cela son travail pour moi, lien Stack ici
Essayez d'ajouter le suffixe --force
npm rebuild node-sass --force
J'ai eu le même problème avec Node v7.4.0 Current (Dernières fonctionnalités).
Avez-vous lu quelque chose ici et rétrogradé Node en v6.9.4 LTS et après avoir exécuté npm rebuild node-sass
, le binaire a été téléchargé et tout a commencé à fonctionner.
Téléchargement du binaire depuis https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-48_binding.node
Téléchargement complet .] - :
Fichier binaire enregistré dans D:\xxx\xxx-xxx\node_modules\node-sass\vendor\win32-x64-48\binding.node
Mise en cache du fichier binaire vers C:\Utilisateurs\utilisateur\AppData\Roaming\npm-cache\node-sass\3.13.1\win32-x64-48_binding.node`
J'ai eu le même problème
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
C’est parce que j’ai installé npm avec une version différente de nodejs, Essayez de supprimer le dossier node_modules en installant
cd your_proyect
rm -rf node_modules
npm install
npm start or gulp or whatever
Si vous utilisez nvm do
nvm use stable // or your favorite version
// remove node_module directory
npm install
npm start or gulp or whatever
Il suffit de lancer le commentaire c'est tout.
npm reconstruire node-sass
profitez de votre codage ...
Pour Visual Studio 2015/2017, cliquez avec le bouton droit sur votre package.json
et cliquez sur Restaurer les packages.
Cela garantira que le npm des outils externes de Visual Studio Tools est exécuté et que la liaison sera reconstruite en fonction de cela.
Pour mon cas particulier, aucune des réponses ci-dessus n'a fonctionné. Alors qu'est-ce que cela a fonctionné:
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
pour vérifier que rien ne reste dans le cache
npm install
Bien que je n’aie pas essayé de reproduire la séquence, c’est une combinaison de ce qui précède qui a fonctionné .
npm install --save node-sass
ou npm install node-sass -g
npm rebuild node-sass
npm install bindings
Cela se produit généralement parce que l'environnement a changé depuis l'exécution de npm install
. L'exécution de npm rebuild node-sass
crée la liaison pour l'environnement actuel.
Je suis un utilisateur Windows 8, j'ai récemment mis à jour Node en v8.11.1
et npm en v6.0.0
et j'ai rencontré le même problème. Rien n'a fonctionné - npm install -g node-sass@latest
ou supprimer le répertoire node-sass
du projet node_modules/
- aucun d'entre eux n'a fonctionné pour moi.
Le Laravel Mix renvoyait une erreur dans la console de mon navigateur en indiquant un nœud manquant: win32-x64-57
. Je ne sais pas si c'est à cause d'une connexion Internet plus lente ou quelque chose d'autre, le nœud manquait lors de la mise à jour.
Par conséquent, certaines des réponses m'ont poussé à regarder les versions de Node-Sass et j'ai trouvé la solution.
npm view node-sass version
(le {your version}
à l'étape 4).C:\Users\{User}\AppData\Roaming\npm-cache\node-sass\{your version}\
de votre PC et placez le fichier .node
téléchargé dans le dossier de version.Et vous avez terminé.
Dans mon cas, la version de node-sass était 4.9.0
et le nœud manquant était win32-x64-57_binding.node
. J'ai donc téléchargé le fichier .node
à partir de 4.9.0 release et ai suivi l'étape 4.
Cela se produit lorsque vous exécutez une mise à jour de Node.js sur votre poste de travail et que vous utilisez node-sass globalement.
Donc, vous devriez désinstaller node-sass globalement
npm uninstall -g node-sass
Et puis vous devez l'installer globalement, à nouveau
npm install -g node-sass
Cela a fonctionné pour moi Supprimer node_modules
puis restaurer les paquets de IDE puis de npm rebuild node-sass
S'il vous plaît écrivez ci-dessous la commande sur le dossier racine.
npm reconstruire node-sass
100% fonctionne ...
Répondez si vous rencontrez ce problème ou quelque chose de similaire et utilisez Docker.
Cause: Lors de la copie de la structure de fichier actuelle dans le conteneur Docker, il est possible que vous copiez des modules de nœud d’un système à un autre (par exemple un conteneur Mac vers Linux).
Solution:
Ajoutez un .dockerignore
, et à l'intérieur ajoutez:
node_modules
Ceci entraînera un npm install
pour installer les liaisons pour l'environnement de menu fixe, plutôt que pour votre environnement de machine local.
Une erreur similaire rencontrée lors de la création d'une application AspNetCore lors de la création de Visual Studio 2015 Community Edition était:
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)
D'après l'erreur ci-dessus, vous pouvez voir que la cause en était une non-concordance de version sur les liaisons pour nodejs.
Le noeud Sass n'a pas trouvé de liaison pour votre environnement actuel: Windows 32 bits avec Node.js 5.x
Liaisons trouvées pour les environnements suivants: - Windows 64 bits avec Node.js 6.x
La solution que j'ai trouvée était de
Je devais d'abord choisir la nouvelle version par défaut du noeud nvm use ***
ou nvm install ***
, puis supprimer tout dans node_modules du projet et npm i
à nouveau.
J'ai eu le même problème. Je ne pouvais pas trouver de solution de travail appropriée ici, alors j'ai trouvé la mienne:
Inspiré par la solution @ Rob-Scott et par d'autres solutions indiquant que nous pourrions installer 2 versions de Node.js, je suis allé à C:\Program Files (x86)\nodejs
et me suis rendu compte que j'avais une version de node.js installée en plus de l'installation par défaut du VS.
Ma solution était assez simple:
add an entry
(à l'extrême gauche du bloc de boutons en haut à droite).C:\Program Files (x86)\nodejs
, validez en appuyant sur enter
Probablement Node.js n’est pas bien défini dans la variable PATH, mais c’est ma solution rapide, mes 2 centimes :)
Actualisez simplement votre cache npm et:
npm cache clean --force
npm install
Cela fonctionne toujours pour moi dans le même cas.
UPD: Votre problème peut aussi être dû à l’absence d’un sasslib global.
npm install -g sass
J'ai eu ce problème lors de la mise à niveau de VS 2017 Professional vers Enterprise
Lors de la création d'une image de menu fixe et d'une tentative d'exécution locale, j'ai rencontré le même problème. Vous devez ajouter un fichier .dockerignore avec les éléments suivants:
.DS_Store
.git
.gitignore
.idea
log/*
target
tmp
node_modules
client/node_modules
spec/internal/public/assets
public/assets
Pour les personnes qui sont passées à nvm à partir du nœud système, si vous n'avez pas supprimé les dossiers ~/.npm
et ~/.node-gyp
, ce problème peut survenir car la version du nœud dans ~/.node-gyp
peut être différente.
Dans tous les cas, ces dossiers doivent être supprimés.
Installez Xcode si vous êtes sur un Mac.
Le problème pour moi était que Task Runner Explorer visait la solution de mon projet. Lorsque j'ai modifié le projet lui-même à l'aide de la liste déroulante, à côté du bouton d'actualisation de Task Runner Explorer, les tâches correspondantes étaient affichées.
N'oubliez pas également de renommer le fichier xxx.node (dans mon cas, win32-x64-51) en binding.node et de le coller dans le dossier xxx (dans mon cas, win32-x64-51),
Aucune des solutions d'installation/de reconstruction n'a résolu le problème pour moi (en utilisant gulp).
Voici comment je l'ai résolu:
1) Téléchargez le fichier de liaison manquant à partir du répertoire repository .
2) Renommez le fichier binding.node
.
3) Créez le répertoire node_modules/node-sass/vendor/darwin-x64-11
(chemin du message d'erreur) s'il n'existe pas.
4) Ajoutez le fichier de liaison à node_modules/node-sass/vendor/darwin-x64-11
J'ai résolu ce problème en modifiant Java_HOME de x86 à x64. Maven fonctionnait sur x86 mais le noeud utilisait x64. Supprimez/node et/node_modules et générez à nouveau.
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 plateforme/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
Pour moi, c’est le plugin maven-war-plugin qui a appliqué des filtres sur les fichiers et corrompu les fichiers woff.
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>dist</directory>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
Supprimer <filtering> true </ filtering>
Ou si vous avez besoin de filtrage, vous pouvez faire quelque chose comme ceci:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>dist</directory>
<excludes>
<exclude>assets/**/*</exclude>
</excludes>
<filtering>true</filtering>
</resource>
<resource>
<directory>dist</directory>
<includes>
<include>assets/**/*</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
J'ai essayé toutes les méthodes que j'ai trouvées.
J'ai remarqué un comportement étrange de ce dossier. Lorsque j'essayais de "cd" dans le dossier "node_sass" à partir du terminal VS, il était indiqué que "Le dossier était introuvable", mais visible dans le Finder.
chmod du terminal VS n'a pas trouvé le dossier même avec la commande 'Sudo'.
J'ai chmod-ed du terminal natif de MacOs et juste après avoir reconstruit avec le noeud.
Réponse de @ core114 suggérant de désinstaller et d'installer le paquet sass
fonctionne à nouveau pour un processus manuel, mais pour un déploiement automatisé/CI/CD vous avez besoin d'une approche plus générique. Ce qui a fonctionné pour moi, c’est pour le déploiement continu de différents environnements:
supprimer l'ancien node_modules
à l'aide de rimraf
avant le déploiement
rimraf node_modules
Mise à jour du paquet sass
dans npm package.json
et validation du contrôle de source.
Pour le prochain déploiement, il actualisera automatiquement sass pour tous les environnements.
C’est quelque chose qui ne peut arriver à personne d’autre, mais dans mon cas, cette erreur s’est produite lorsque j’ai décidé de redémarrer mon projet (pour suivre un autre tutoriel de vue.js).
Les étapes qui ont créé mon problème étaient les suivantes:
# move my existing project
mv project-name project-name-old
# create a new project
vue create project-name
# run server
npm run server
Le problème était que mon serveur précédent fonctionnait toujours sur un autre onglet de terminal. Sur localhost: 8080, la page qui était toujours affichée était l'ancien projet.
Tout ce que je devais faire était d’arrêter l’ancien serveur du terminal et d’exécuter à nouveau "npm run serve" (ou view localhost: 8081).
Juste au cas où cela confondrait quelqu'un d'autre pendant une demi-heure, ou pour rire et rigoler.
Vérifiez votre système: Votre système a-t-il 2 installations Node.js
différentes?
Si vous installez le noeud à partir de nodejs, le répertoire d'installation par défaut est C:\Program Files\nodejs
J'avais le noeud version 6.xx installé ici.
Vérifiez votre répertoire des outils Web externes de VSC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External
Un travail autour est:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External
.C:\Program Files\nodejs
et C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External
.node_modules
de votre solution.Si ça ne marche pas
node_modules
de votre solution.NOTE: $ est l'invite de commande
$ npm install
…
$ npm run build:dev
Relancez le projet.
Je viens d'exécuter npm rebuild au lieu de npm rebuild node-sass et le problème a disparu .. Je ne sais pas quelle est la magie qui se cache derrière.
Ouvrez Visual Studio 2017
Allez dans Outils -> Options…
Allez à Projets et solutions -> Gestion des packages Web
Déplacez $ (PATH) en haut de la liste et fermez cette fenêtre.
Redémarrez Visual Studio.
Cela a fonctionné dans mon cas, car la version de mon nœud est la version 11.x