Uncaught Error: Moduł nie zarejestrował się samodzielnie

92

Próbuję używać node-vlc z nw.js (v0.12.0-alpha2). Kiedy uruchamiam moją aplikację bez nw.js, działa, ale kiedy uruchamiam ją z nw.js, pojawia się błąd:

Uncaught Error: moduł nie zarejestrował się samodzielnie. ”, Źródło: /home/alexis/Bureau/dev/jukebox/node_modules/vlc/node_modules/ffi/node_modules/bindings/bindings.js (84)

Wypróbowałem kilka poleceń z nw-gyp, ale to mi nie pomogło. Korzystam z Ubuntu 14, 64-bitowego.

Alexis Schad
źródło
6
Proszę rozważyć zaznaczenie odpowiedzi Omara. To rozwiązało problem.
Ionică Bizău

Odpowiedzi:

155

Jeśli zaktualizowałeś węzeł, możesz to npm rebuildnaprawić

DiverseAndRemote.com
źródło
3
Zdecydowanie powinieneś uruchomić to bez sudo, chyba że wiesz, że faktycznie potrzebujesz uprawnień roota. Nie powinieneś potrzebować roota, chyba że masz do czynienia z modułami zainstalowanymi globalnie (co jest ogólnie odradzane).
gfxmonk
8
Nie działa dla mnie, ale rm -r node_modulespotem npm install spełnił swoje zadanie
Spc_555
1
Nie ogranicza się tylko do ulepszenia, działa również w przypadku ponownej instalacji npm i węzła itp.
Kevin
To naprawdę nie odpowiada na pytanie. Jaki jest problem? Otrzymuję ten błąd podczas ładowania modułu 'usb' od pracownika sieci w electronJS. Nie mam pojęcia, co to znaczy, czy możesz wyjaśnić, na czym polega problem?
PeterT
50

Dla mnie: rm -r node_moduleswtedy npm install

Thami Bouchnafa
źródło
18

Miałem podobny problem z innym produktem i moja poprawka polegała na zmianie używanej wersji węzła. Używałem 0.12.0i wróciłem do 0.10.26.

Osobiście używam NVM do obsługi zmiany wersji węzła. Po zainstalowaniu NVM jest to tak proste, jak uruchomienie

nvm use 0.10.26

Lub ustawiając wersję domyślną na 0.10.26

nvm alias default 0.10.26

Mamy nadzieję, że to Ci pomoże - nasze problemy pochodzą z różnych produktów, ale rozwiązanie może być takie samo.

joel.bowen
źródło
Ta poprawka pomogła mi, gdy wykonywałem pakiety globalne, ale chciałem uruchamiać pakiety lokalne z nową wersją węzła. Po prostu muszę zmienić wersje, gdy uruchomiłem polecenia globalne.
Collin Price
9

Miałem podobny problem.

/Users/user/NodeAddons/bridge/node_modules/bindings/bindings.js:83 Błąd: moduł nie zarejestrował się samodzielnie.

W moim przypadku robiłem dodatek C / C ++ i zapomniałem go wyeksportować, w moim main.cc brakowało kodu poniżej:

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

NODE_MODULE(method, Init);

Mam nadzieję, że to pomoże innym! Dzięki :)

Aion
źródło
Cieszę się, że (Y): D
Aion
3

Miałem kiedyś ten problem podczas tworzenia wieloplikowego dodatku c ++. W moim pliku binding.gyp miałem:

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

Mój projekt zawierał kilka plików * .cc. Jednak makro NODE_MODULE () zostało wywołane tylko w jednym pliku, który importował pozostałe pliki. Ale oczekuje, że węzeł, który nazywany jest w granicach pierwszego pliku * .cc wymienionych w źródłach. Musiałem więc zmienić źródła, aby jawnie dodać ten plik na początku

user1485083
źródło
2

U mnie bieganie npm updatezadziałało

inolasco
źródło
Może, ale tylko wtedy, gdy pakiet jest nieaktualny. Robi też coś innego, niż jest to wymagane. npm rebuildczy rm -rf node_modules && npm ijest poprawną odpowiedzią.
Albin
1

Miałem ten sam problem z 0.12 i io.js 1.3.0, powrót do Node.js 0.10 rozwiązał problem.

Matthew O'Riordan
źródło
1

Dodałem ten sam problem, ponieważ zainstalowałem do modułów jako sudo ... Usunięcie folderu modułów węzła i ponowna instalacja, jak zwykły użytkownik, naprawiło to.

srebrzysty
źródło
1
Idealny. Zmieniłem własność folderu za pomocą chown i ponownie zainstalowałem z npm bez sudo. Zadziałało.
Asheesh
1

Dla mnie npm rebuildlub npm updatenie działało. Musiałem usunąć node_modulesfolder i npm installponownie je zainstalować.

Jesús Carrera
źródło
0

Miałem ten sam problem. Mój skrypt, który odwoływał się do globalnego skryptu odniesienia, miał nieprawidłowe odwołanie. Zdjąłem to nieprawidłowe odniesienie i błąd zniknął. Mój komunikat o błędzie nie zawierał informacji o tym konkretnym nieprawidłowym odwołaniu, co utrudniało debugowanie. Ale komunikat „Uncaught Error: Module nie zarejestrował się samodzielnie” był komunikatem, który otrzymałem.

Dzieje się tak również w moim innym projekcie. Z jakiegoś powodu nie rozpoznałby ścieżki odniesienia, gdyby jeden ze znaków był pisany wielką literą. Nawet pomyśleć, górna obudowa była poprawną pisownią ścieżki.

Good4Nothing
źródło
-1

też miałem ten sam problem i ten działał dla mnie.

musisz przejść do node_module / i skonfigurować cel nw-gyp, wykonując następujące polecenie

$ nw-gyp configure --target=0.12.3 

następnie

$ nw-gyp build

i to działało dla mnie. Jeśli otrzymasz polecenie nie znaleziono nw-gyp, użyj

npm install nw-gyp
mayank
źródło