web-dev-qa-db-fra.com

Le noeud Sass n'a pas pu trouver de liaison pour votre environnement actuel

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?

329
wazzaday

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.x

Liaisons 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
518
Bipon Biswas

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

  • Aller à: Outils> Options> Projets et solutions> Outils Web externes 

Pour VS 2017 (.3)

  • Outils> Options> Projets et solutions> Gestion de packages Web> Outils Web externes (par @nothrow)

Dans VS 2017, vous devez également placer $ (PATH) au-dessus de $ (VSINSTALLERDIR)\Web\External. 


  • Réorganisez afin que $ (PATH) soit supérieur à $ (DevEnvDir)\Extensions\Microsoft\Web Tools\External

 enter image description here


Supprimer node_modules et exécuter npm install puis npm rebuild node-sassn'a rien fait.

234
Rob Scott

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

106
Beofett

A travaillé pour moi:

Supprimez simplement le dossier node-sass et exécutez npm install .

96
Codiee

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
66
Legends

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.

17

Réparer

npm rebuild node-sass --force

Ou, si vous utilisez node-sass dans un conteneur:

docker exec <container-id> npm rebuild node-sass --force

Explication

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.

15

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

13
core114

Essayez d'ajouter le suffixe --force

npm rebuild node-sass --force
12
user3890355

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`

8
krankuba

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
7
gsalgadotoledo

Il suffit de lancer le commentaire c'est tout.

npm reconstruire node-sass

profitez de votre codage ...

5
mahendren

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
3
Alex Pandrea

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.

3
Kisz Na

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.

  1. Étape 1: Vérifiez votre version de node-sass à l'aide de la commande: npm view node-sass version (le {your version} à l'étape 4).
  2. Étape 2: Accéder à Communiqués Node-Sass
  3. Étape 3: Obtenez votre version, recherchez le nœud manquant dans les actifs répertoriés sous chaque version, puis téléchargez le fichier.
  4. Étape 4: Obtenez le 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.

2
Mayeenul Islam

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
2
Domenico

Cela a fonctionné pour moi Supprimer node_modules puis restaurer les paquets de IDE puis de npm rebuild node-sass

2
Nouman Bhatti

S'il vous plaît écrivez ci-dessous la commande sur le dossier racine.

npm reconstruire node-sass

100% fonctionne ...

2
Yogesh Patil

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.

2
farrellw

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 

  • Installez la version Windows de nodejs
  • Ajouter un chemin pour le noeud js (C:\Program Files\nodejs) dans les outils Web externes (voir la réponse de Rob Scott), 
  • Déplacer le chemin nodejs au-dessus de $ (PATH).
2
Matt R

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.

1
obotezat

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:

  • Sélectionnez Outils> Options> Projets et solutions> Gestion des packages Web> Outils Web externes.
  • Cliquez sur add an entry (à l'extrême gauche du bloc de boutons en haut à droite).
  • Entrez C:\Program Files (x86)\nodejs, validez en appuyant sur enter
  • Amenez-le en haut de la liste
  • Prendre plaisir

Probablement Node.js n’est pas bien défini dans la variable PATH, mais c’est ma solution rapide, mes 2 centimes :)

1
Jean

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
1
AlexK

J'ai eu ce problème lors de la mise à niveau de VS 2017 Professional vers Enterprise

  1. Fermer VS
  2. Supprimer node_modules
  3. Ouvrir VS
  4. Faites un clic droit sur package.json et sélectionnez "restaurer les packages"
1
dk_french032

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

1
Chris J Boyle

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.

0
prasanthv

Installez Xcode si vous êtes sur un Mac.

0
eomeroff

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.

0
Lewis Hamill

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),

0
Devdutta Natu

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 

0
Don Peat

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.

0
Tomáš Čechvala

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

0
Tevin

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>
0
Viktor Eriksson

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.

0
diginix

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:

  1. supprimer l'ancien node_modules à l'aide de rimraf avant le déploiement

    rimraf node_modules

  2. 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.

0
Pranav Singh

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.

0
althras

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:

  • Faites une sauvegarde du répertoire C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External.
  • Copier le contenu du répertoire C:\Program Files\nodejs et 
  • coller dans le répertoire C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External.
  • Supprimez le répertoire node_modules de votre solution.
  • Relancez le projet. Si vous recevez un message d'erreur, exécutez le projet une seconde fois.

Si ça ne marche pas

  • Supprimez le répertoire node_modules de votre solution.

NOTE: $ est l'invite de commande

$  npm install 
…
$ npm run build:dev

Relancez le projet.

0
John Kocer
  1. Supprimez le dossier node_modules.
  2. Installez à nouveau les dépendances. (npm i)
0
Shivam Kubde

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.

0
Alien13

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

0