Erreur non interceptée: le module ne s'est pas enregistré automatiquement

92

J'essaye d'utiliser node-vlc avec nw.js (v0.12.0-alpha2). Lorsque je lance mon application sans nw.js, cela fonctionne, mais lorsque je la lance avec nw.js, j'ai une erreur:

Erreur non interceptée: le module ne s'est pas enregistré automatiquement. ", Source: /home/alexis/Bureau/dev/jukebox/node_modules/vlc/node_modules/ffi/node_modules/bindings/bindings.js (84)

J'ai essayé quelques commandes avec nw-gyp mais cela n'a pas pu m'aider. Je suis sur Ubuntu 14, 64 bits.

Alexis Schad
la source
6
Veuillez noter la réponse d'Omar. Cela a résolu le problème.
Ionică Bizău

Réponses:

154

Si vous avez mis à niveau le nœud, vous pourrez npm rebuildpeut-être résoudre ce problème pour vous

DiverseAndRemote.com
la source
3
Vous devez absolument l'exécuter sans sudo, sauf si vous savez que vous avez réellement besoin d'un accès root. Vous ne devriez pas avoir besoin de root sauf si vous avez affaire à des modules installés globalement (ce qui est généralement déconseillé).
gfxmonk
8
rm -r node_modulesnpm install
Cela
1
Non seulement limité à la mise à niveau, fonctionne également dans le cas de la réinstallation de npm et du nœud, etc.
Kevin
Cela ne répond pas vraiment à la question. Quel est le problème? J'obtiens ce module de chargement d'erreur 'usb' d'un travailleur Web dans electronJS. Aucune idée de ce que cela signifie, pouvez-vous expliquer quel est le problème?
PeterT le
49

Pour moi: rm -r node_modulesalors npm install

Thami Bouchnafa
la source
17

J'ai eu un problème similaire avec un autre produit et ma solution consistait à changer la version du nœud que j'utilisais. J'utilisais 0.12.0et je suis redevenu 0.10.26.

Personnellement, j'utilise NVM pour gérer le changement de version des nœuds. Avec NVM installé, c'est aussi simple que de courir

nvm use 0.10.26

Ou définir la version par défaut sur 0.10.26

nvm alias default 0.10.26

J'espère que cela vous aidera - nos problèmes proviennent de différents produits, mais la solution peut être la même.

joel.bowen
la source
Ce correctif m'a aidé lorsque j'exécutais des packages globaux, mais que je voulais exécuter des packages locaux avec une nouvelle version de nœud. Il suffit de changer de version lorsque j'exécute des commandes globales.
Prix ​​Collin
9

J'ai eu un problème similaire.

/Users/user/NodeAddons/bridge/node_modules/bindings/bindings.js:83 Erreur: le module ne s'est pas enregistré automatiquement.

Dans mon cas, je faisais un module complémentaire C / C ++, et j'avais oublié d'exporter le module complémentaire, dans mon main.cc manquait le code ci-dessous:

void Init(v8::Handle<v8::Object> exports) {
  NODE_SET_METHOD(exports, "method", method);
}

NODE_MODULE(method, Init);

J'espère que cela aide les autres! Merci :)

Aion
la source
Heureux pour vous (Y): D
Aion
3

J'ai eu ce problème une fois lors de la création d'un addon C ++ multi-fichiers. Dans mon fichier binding.gyp, j'avais:

"sources": ["src/*.cc", "src/*.h" ]

Et mon projet contenait plusieurs fichiers * .cc. Cependant, la macro NODE_MODULE () n'a été appelée que sur un seul fichier qui importait le reste des fichiers. Mais node s'attend à ce qu'il soit appelé sur le premier fichier * .cc répertorié dans les sources. J'ai donc dû changer de source pour ajouter explicitement ce fichier au début

user1485083
la source
2

Pour moi, courir a npm updatefonctionné

Inolasco
la source
C'est possible, mais seulement si le package est obsolète. Il fait aussi autre chose que demandé. npm rebuildou rm -rf node_modules && npm iest la bonne réponse.
Albin le
1

J'ai eu ce même problème avec 0.12 et io.js 1.3.0, le retour à Node.js 0.10 a résolu le problème.

Matthew O'Riordan
la source
1

J'ai ajouté le même problème car j'ai installé des modules en tant que sudo ... La suppression du dossier des modules de nœuds et la réinstallation en tant qu'utilisateur normal l'ont corrigée.

silveur
la source
1
Parfait. J'ai changé la propriété du dossier en utilisant chown et réinstallé avec npm sans sudo. Ça a marché.
Asheesh
1

Pour moi npm rebuildou npm updaten'a pas fonctionné. J'ai dû supprimer le node_modulesdossier et courir npm installpour les réinstaller.

Jesús Carrera
la source
0

J'ai eu le même problème. Mon script qui faisait référence à un script de référence globale avait une référence non valide. J'ai enlevé cette référence invalide et l'erreur a disparu. Mon message d'erreur ne contenait aucune indication de cette référence invalide particulière, ce qui rendait le débogage plus difficile. Mais «Erreur non interceptée: le module ne s'est pas enregistré automatiquement» était le message que j'obtenais.

Cela se produit également dans mon autre projet. Pour une raison quelconque, il ne reconnaîtrait pas le chemin de référence si l'un des caractères était en majuscule. Même pensé, le boîtier supérieur était l'orthographe correcte du chemin.

Bon4Rien
la source
-1

J'étais également confronté au même problème et celui-ci a fonctionné pour moi.

vous devez aller dans le node_module / et configurer la cible nw-gyp en suivant la commande

$ nw-gyp configure --target=0.12.3 

puis

$ nw-gyp build

et cela a fonctionné pour moi. Si vous obtenez la commande nw-gyp introuvable, utilisez

npm install nw-gyp
mayank
la source