अनकवर्ड एरर: मॉड्यूल ने सेल्फ-रजिस्टर नहीं किया


92

मैं nw.js (v0.12.0-alpha2) के साथ नोड-वीएलसी का उपयोग करने की कोशिश करता हूं। जब मैं अपना ऐप बिना nw.js के लॉन्च करता हूं तो यह काम करता है, लेकिन जब मैंने इसे nw.js के साथ लॉन्च किया तो मुझे एक त्रुटि मिली:

अनकवर्ड एरर: मॉड्यूल ने सेल्फ-रजिस्टर नहीं किया। ", source: /home/alexis/Bureau/dev/jukebox/node_modules/vlc/node_modules/ffi/bode_modules/bindings/bindings.js (84)

मैंने nw-gyp के साथ कुछ कमांड की कोशिश की, लेकिन यह मेरी मदद नहीं कर सका। मैं उबंटू 14, 64-बिट पर हूं।


6
कृपया उमर के जवाब को चिह्नित करने पर विचार करें। इससे समस्या हल हो गई।
Ionică Bizău

जवाबों:


154

यदि आपने नोड अपग्रेड किया है तो npm rebuildयह आपके लिए ठीक हो सकता है


3
जब तक आप जानते हैं कि आपको वास्तव में रूट एक्सेस की आवश्यकता है, तब तक आपको बिना सूडो के इसे जरूर चलाना चाहिए । जब तक आप विश्व स्तर पर स्थापित मॉड्यूल (जो आमतौर पर हतोत्साहित नहीं होते) से निपटने के लिए आपको रूट की आवश्यकता नहीं होनी चाहिए।
gfxmonk

8
मेरे लिए काम नहीं किया, लेकिन rm -r node_modulesफिर npm install काम किया
Spc_555

1
केवल अपग्रेड तक सीमित नहीं, npm और नोड को पुनः स्थापित करने के मामले में भी काम करते हैं, आदि
केविन

यह वास्तव में इस सवाल का जवाब नहीं देता है। समस्या क्या है? मुझे इलेक्ट्रॉनजस में एक वेब कार्यकर्ता से यह त्रुटि लोड करने वाला मॉड्यूल 'यूएसबी' मिलता है। पता नहीं इसका क्या मतलब है, क्या आप बता सकते हैं कि समस्या क्या है?
पीटर


17

मेरे पास एक अन्य उत्पाद के साथ एक समान मुद्दा था और मेरा फिक्स नोड के संस्करण को बदलना था जो मैं उपयोग कर रहा था। मैं उपयोग कर रहा था 0.12.0और वापस बदल गया 0.10.26

निजी तौर पर, मैं नोड संस्करण को बदलने के लिए NVM का उपयोग करता हूं । एनवीएम स्थापित होने के साथ यह चलाने में जितना सरल है

nvm use 0.10.26

या डिफ़ॉल्ट संस्करण को 0.10.26 पर सेट करना

nvm alias default 0.10.26

उम्मीद है कि इससे आपको मदद मिलेगी - हमारे मुद्दे अलग-अलग उत्पादों से आए थे लेकिन समाधान एक ही हो सकता है।


जब मैं वैश्विक पैकेज निष्पादित कर रहा था तो इस फिक्स ने मेरी मदद की लेकिन एक नए नोड संस्करण के साथ स्थानीय पैकेज चलाना चाहता था। जब मैं वैश्विक कमांड चलाता हूं तो बस संस्करणों को स्विच करना पड़ता है।
कोलिन मूल्य

9

मुझे भी ऐसी ही समस्या थी।

/Users/user/NodeAddons/bridge/node_modules/bindings/bindings.js:83 त्रुटि: मॉड्यूल ने स्व-रजिस्टर नहीं किया था।

मेरे मामले में मैं एक C / C ++ Add-on कर रहा था, और मैं अपने main.cc में ऐड-ऑन एक्सपोर्ट करना भूल गया था, नीचे दिया गया कोड गायब था:

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

NODE_MODULE(method, Init);

आशा है कि यह दूसरों की मदद करता है! धन्यवाद :)


आपके लिए खुशी (Y): D
Aion

3

मुझे एक बार मल्टी-फाइल सी ++ एडऑन बनाते समय यह समस्या थी। मेरी बाइंडिंग.गाइप फ़ाइल में मेरे पास थी:

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

और मेरे प्रोजेक्ट में कई * .cc फाइलें थीं। हालाँकि, NODE_MODULE () मैक्रो को केवल एक फ़ाइल पर बुलाया गया था, जो बाकी फ़ाइलों को आयात करती थी। लेकिन नोड को उम्मीद है कि इसे फ्रिस्ट * .cc फ़ाइल में स्रोतों में सूचीबद्ध किया गया है। इसलिए मुझे उस फ़ाइल को शुरुआत में स्पष्ट रूप से जोड़ने के लिए स्रोतों को बदलना पड़ा


2

मेरे लिए, दौड़ने से npm updateकाम चला


यह कर सकते हैं, लेकिन केवल अगर पैकेज पुराना है। यह मांगे जाने के अलावा भी कुछ करता है। npm rebuildया rm -rf node_modules && npm iसही उत्तर है।
एल्बिन


1

मैं एक ही समस्या जोड़ रहा हूँ क्योंकि मैं sudo के रूप में मॉड्यूल के लिए स्थापित ... नोड मॉड्यूल फ़ोल्डर को हटाने और सामान्य उपयोगकर्ता के रूप में इसे फिर से स्थापित करना।


1
उत्तम। मैंने फ़ोल्डर का स्वामित्व बदल दिया और चाउडो का उपयोग कर बिना sudo के npm के साथ फिर से स्थापित किया। इसने काम कर दिया।
आशीष

1

मेरे लिए npm rebuildया npm updateकाम नहीं किया। मुझे node_modulesफ़ोल्डर को हटाने और npm installउन्हें फिर से स्थापित करने के लिए चलाना पड़ा ।


0

मुझे भी यही समस्या थी। मेरी स्क्रिप्ट जो वैश्विक संदर्भ स्क्रिप्ट का संदर्भ दे रही थी, उसका अमान्य संदर्भ था। मैंने वह अमान्य संदर्भ हटा लिया और त्रुटि हो गई थी। मेरे त्रुटि संदेश में उस विशेष अमान्य संदर्भ का कोई संकेत नहीं था, जिसने इसे डीबग करना कठिन बना दिया था। लेकिन 'अनकवर्ड एरर: मॉड्यूल ने सेल्फ-रजिस्टर नहीं किया था' वह संदेश था जो मुझे मिल रहा था।

मेरे दूसरे प्रोजेक्ट में भी यही होता है। किसी कारण से, यह संदर्भ पथ को नहीं पहचानता है यदि वर्णों में से एक अपरकेस है। यह भी सोचा, ऊपरी आवरण मार्ग की सही वर्तनी थी।


-1

मैं भी उसी मुद्दे का सामना कर रहा था और यह मेरे लिए काम कर रहा था।

आपको node_module / में जाने की आवश्यकता है और nw-gyp लक्ष्य को निम्नलिखित कमांड द्वारा कॉन्फ़िगर करना है

$ nw-gyp configure --target=0.12.3 

फिर

$ nw-gyp build

और यह मेरे लिए काम किया। यदि आपको nw-gyp कमांड नहीं मिली है तो उपयोग करें

npm install nw-gyp
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.