Kesalahan Tidak Tertangkap: Modul tidak mendaftar sendiri


92

Saya mencoba menggunakan node-vlc dengan nw.js (v0.12.0-alpha2). Ketika saya meluncurkan aplikasi saya tanpa nw.js, itu berfungsi, tetapi ketika saya meluncurkannya dengan nw.js saya mendapat kesalahan:

Kesalahan Tidak Tertangkap: Modul tidak mendaftar sendiri. ", Sumber: /home/alexis/Bureau/dev/jukebox/node_modules/vlc/node_modules/ffi/node_modules/bindings/bindings.js (84)

Saya mencoba beberapa perintah dengan nw-gyp tetapi tidak dapat membantu saya. Saya menggunakan Ubuntu 14, 64-bit.


6
Mohon pertimbangkan untuk menandai jawaban Omar. Itu menyelesaikan masalah.
Ionică Bizău

Jawaban:


155

Jika Anda telah mengupgrade node maka npm rebuildmungkin memperbaikinya untuk Anda


3
Anda pasti harus menjalankan ini tanpa sudo kecuali Anda tahu Anda benar-benar membutuhkan akses root. Anda tidak perlu root kecuali Anda berurusan dengan modul yang diinstal secara global (yang biasanya tidak disarankan).
gfxmonk

8
Tidak berhasil untuk saya, tetapi rm -r node_moduleskemudian npm install berhasil
Spc_555

1
Tidak hanya terbatas pada peningkatan, juga berfungsi dalam kasus menginstal ulang npm dan node, dll.
Kevin

Ini tidak benar-benar menjawab pertanyaan itu. Apa masalahnya? Saya mendapatkan modul kesalahan memuat 'usb' dari pekerja web di electronJS. Tidak tahu apa artinya, dapatkah Anda menjelaskan apa masalahnya?
PeterT


18

Saya memiliki masalah serupa dengan produk lain dan perbaikan saya adalah mengubah versi node yang saya gunakan. Saya menggunakan 0.12.0dan diubah kembali ke 0.10.26.

Secara pribadi, saya menggunakan NVM untuk menangani perubahan versi node. Dengan NVM terinstal, itu semudah menjalankan

nvm use 0.10.26

Atau mengatur versi default ke 0.10.26

nvm alias default 0.10.26

Semoga ini membantu Anda - masalah kami berasal dari produk yang berbeda tetapi solusinya mungkin sama.


Perbaikan ini membantu saya ketika saya menjalankan paket global tetapi ingin menjalankan paket lokal dengan versi node baru. Hanya harus mengganti versi ketika saya menjalankan perintah global.
Harga Collin

9

Saya punya masalah serupa.

/Users/user/NodeAddons/bridge/node_modules/bindings/bindings.js:83 Kesalahan: Modul tidak mendaftar sendiri.

Dalam kasus saya, saya melakukan Add-on C / C ++, dan saya lupa mengekspor add-on, di main.cc saya kehilangan kode di bawah ini:

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

NODE_MODULE(method, Init);

Semoga ini bisa membantu orang lain! Terima kasih :)


Senang untukmu (Y): D
Aion

3

Saya pernah mengalami masalah ini saat membuat addon c ++ multi-file. Dalam file binding.gyp saya memiliki:

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

Dan proyek saya berisi beberapa file * .cc. Namun, makro NODE_MODULE () hanya dipanggil pada satu file yang mengimpor file lainnya. Tetapi node mengharapkan bahwa itu dipanggil pada file * .cc frist yang terdaftar di sumber. Jadi saya harus mengubah sumber untuk menambahkan file itu secara eksplisit ke awal


2

Bagi saya, lari npm updateberhasil


Bisa, tetapi hanya jika paket tersebut sudah usang. Itu juga melakukan sesuatu selain yang diminta. npm rebuildatau rm -rf node_modules && npm ijawaban yang benar.
Albin

1

Saya memiliki masalah yang sama dengan 0.12 dan io.js 1.3.0, kembali ke Node.js 0.10 memperbaiki masalah tersebut.


1

Saya telah menambahkan masalah yang sama karena saya menginstal ke modul sebagai sudo ... Menghapus folder modul node dan menginstal ulang sebagai pengguna biasa memperbaikinya.


1
Sempurna. Saya mengubah kepemilikan folder menggunakan chown dan menginstal ulang dengan npm tanpa sudo. Berhasil.
Asheesh

1

Untuk saya npm rebuildatau npm updatetidak berhasil. Saya harus menghapus node_modulesfolder dan menjalankan npm installuntuk menginstalnya lagi.


0

Saya memiliki masalah yang sama. Skrip saya yang mereferensikan skrip referensi global memiliki referensi yang tidak valid. Saya melepas referensi yang tidak valid itu dan kesalahan itu hilang. Pesan kesalahan saya tidak memiliki indikasi referensi tidak valid tertentu yang membuatnya lebih sulit untuk di-debug. Tetapi 'Kesalahan Tidak Tertangkap: Modul tidak mendaftar sendiri' adalah pesan yang saya terima.

Ini juga terjadi di proyek saya yang lain. Untuk beberapa alasan, itu tidak akan mengenali jalur referensi jika salah satu karakternya adalah huruf besar. Bahkan menurutku, casing atas adalah ejaan jalan yang benar.


-1

saya juga menghadapi masalah yang sama dan yang ini berhasil untuk saya.

Anda harus masuk ke node_module / dan mengkonfigurasi target nw-gyp dengan mengikuti perintah

$ nw-gyp configure --target=0.12.3 

kemudian

$ nw-gyp build

dan ini berhasil untuk saya. Jika Anda mendapatkan perintah nw-gyp tidak ditemukan, gunakan

npm install nw-gyp
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.