node.js - openclassroom - npm tutorial




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

Je rencontre des problèmes pour créer une application parce que node-sass échoue constamment avec l'erreur.

ERREUR dans Liaison manquante
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.

Quand j'exécute le 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?


Actualisez simplement votre cache npm et:

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)

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 uninstall -g node-sass

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éférentiel .

2) Renommez le fichier binding.node .

3) Créez un node_modules/node-sass/vendor/darwin-x64-11 (chemin d'accès du message d'erreur) s'il n'existe pas.

4) Ajoutez le fichier de liaison à node_modules/node-sass/vendor/darwin-x64-11


Cela se produit généralement parce que l'environnement a changé depuis l'exécution de l' npm install . L'exécution de npm rebuild node-sass construit la liaison pour l'environnement actuel.


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 cache clean --force  
npm install

Et puis vous devez l'installer globalement, à nouveau

npm install -g sass

Il suffit de lancer le commentaire c'est tout.

npm reconstruire node-sass

profitez de votre codage ...


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"

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 il a téléchargé le binaire et tout a commencé à fonctionner.

Téléchargement du fichier binaire à partir de 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 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 npm install 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 se trouvent sur git . /node_modules/node-sass/vendor/ 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 utiliser 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 la version de Node-sass: https://github.com/sass/node-sass/releases


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 génération Gulp est exécutée sous la version 4.x de Node.js. 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 que vous le reconstruisez à partir de zéro, npm téléchargera les dépendances appropriées pour votre version actuelle du système et du noeud.


Je devais d'abord choisir la nouvelle version par défaut du nœud nvm use *** ou nvm install *** , puis supprimer tous les nœuds_modules du projet et npm i nouveau.


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.


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 Visual Studio 2015/2017, faites un clic 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 sur cette base.


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 qu'il ne reste plus rien 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é. En plus, vous pouvez aussi essayer:

npm install --save node-sass ou npm install node-sass -g

npm rebuild node-sass
npm install bindings

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

npm reconstruire node-sass

100% fonctionne ...


Travaillé pour moi:

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


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


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 du 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'aura 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 effet dans la fonction getBinaryPath de la commande node-sass \ lib \ extensions.js


* Réponse liée ici à Docker *

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 d'exploitation à un autre (par exemple, un conteneur Mac vers Linux).

Solution:

Ajouter un .dockerignore , et à l'intérieur ajouter:

node_modules

Cela entraînera une npm install pour installer les liaisons pour l’environnement de menu fixe, plutôt que l’environnement de votre ordinateur local.


Exécuter: npm rebuild node-sass --force

Dans mon cas, il n'a également pas pu 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




npm