নোড - NODE_MODULE_VERSION 51 ব্যবহার করে একটি ভিন্ন নোড.জেএস সংস্করণের বিপরীতে সংকলিত হয়েছিল


142

আমি টার্মিনালে একটি নোড অ্যাপ্লিকেশন চালাচ্ছি। সম্প্রতি নোড v8.5.0 এ আপগ্রেড হয়েছে, তবে এই ত্রুটিটি পাচ্ছি:

Error: The module '/tidee/tidee-au/packages/tidee-au-server/node_modules/bcrypt/lib/binding/bcrypt_lib.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 51. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at Object.Module._extensions..node (module.js:653:18)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)
    at Module.require (module.js:568:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/tidee/tidee-au/packages/tidee-au-server/node_modules/bcrypt/bcrypt.js:6:16)
    at Module._compile (module.js:624:30)
    at Module._extensions..js (module.js:635:10)
    at Object.require.extensions.(anonymous function) [as .js] (/tidee/tidee-au/packages/tidee-au-server/node_modules/babel-register/lib/node.js:152:7)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)
    at Module.require (module.js:568:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/tidee/tidee-au/packages/tidee-au-server/server/helpers/encryptPass.js:1:16)

এই সমাধান করার কোন ধারণা?


দয়া করে সঠিক উত্তরটি চিহ্নিত করুন
শানিকা এডিরিভিরা

উত্তর:


119

আপনাকে ফোল্ডারটি bcryptথেকে মডিউল ফোল্ডার ( ) সরিয়ে node_modulesপুনরায় ইনস্টল করতে হবে, নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:

$ rm -rf node_modules/bcrypt
$ npm install
// or
$ yarn

7
কাজ করে না। আমার জন্য, সমস্যাটি zmqপ্যাকেজটির সাথে রয়েছে এবং এটি পুনর্নির্মাণ বা মুছতে এবং npm installingআবারও কোনও উপকারে আসে না। সর্বদা একই সমস্যা।
trusktr

7
@trusktr node_modules সম্পূর্ণরূপে ফোল্ডারে মুছে ফেলতে চেষ্টা করুন: rm -rf node_modules। এনএমপি ক্যাশে সাফ করুন npm cache clear:, প্যাকেজ-লক.জসন বা এনপিএম-সঙ্কিঙ্ক্র্যাপ.জসন সরান। এবং শুধুমাত্র যে রান পরে npm i
অ্যালেক্সম্যাক

1
একটি দুর্দান্ত বার্তা পেয়েছেন, "আমি নিশ্চিত আশা করি আপনি কী করছেন তা আপনি জানেন" " আমি যখন ক্যাশে পরিষ্কার ছিল। আমাকে এত কিছু না, তবে আপাতদৃষ্টিতে আপনি করেন! এটা কাজ করেছে.
ওফ্লাক করুন

আপনার / কখনই প্রয়োজন হবে না npm cache clear, অন্যান্য কমান্ডগুলি এটি তৈরি করেছে
সাবধান করুন

আমার জন্য কাজ! আমার সঠিক ত্রুটিটি ছিল - "মডিউল '/ ব্যবহারকারী / <ব্যবহারকারীর নাম / ডাউনলোড / গ্রাফিকল / নোড_মডিউল / বিক্রিপ্ট / লিব / বাইন্ডিং / বিসিআরপিট_লিব। নোড' নোড.জেএস সংস্করণের বিপরীতে NODE_MODULE_VERSION 64 ব্যবহার করে সংকলিত হয়েছিল।"
দৈনিক

73

আমার একই সমস্যা ছিল এবং এখানে উল্লিখিত কিছুই আমার পক্ষে কাজ করেনি । আমার জন্য যা কাজ করেছে তা এখানে:

  1. আপনার প্রয়োজন সমস্ত নির্ভরতা প্রয়োজন main.jsইলেক্ট্রন দ্বারা চালিত ফাইলটিতে । (এটি আমার কাছে প্রথম গুরুত্বপূর্ণ অংশ বলে মনে হয়েছিল)
  2. ইলেক্ট্রন-পুনর্নির্মাণnpm i -D electron-rebuild যুক্ত করতে চালান প্যাকেজ
  3. node-modulesফোল্ডারটি পাশাপাশি সরানpackages-lock.json ফাইলটি ।
  4. চালান npm iসমস্ত মডিউল ইনস্টল করতে ।
  5. সবকিছু পুনর্নির্মাণের জন্য ./node_modules/.bin/electron-rebuild( .\node_modules\.bin\electron-rebuild.cmdউইন্ডোজের জন্য) চালান

এটি সরাসরি আমার ম্যাকের কাজ না করে সরাসরি চালানো খুব গুরুত্বপূর্ণ./node_modules/.bin/electron-rebuildnpm i

আমি আশা করি আমি কিছু হতাশ প্রাণকে সহায়তা করতে পারি।


2
শুধু চালানো ইলেকট্রন-পুনর্নির্মাণটি আমার জন্য কাজ করেছে। আমার ক্ষেত্রে মডিউলগুলি মুছতে এবং পুনরায় ইনস্টল করার দরকার নেই।
stoefln

1
ঠিক আছে তাহলে আপনি ভাগ্যবান @ স্টোফ্লান পেয়েছেন দুর্ভাগ্যক্রমে কিছু সেটআপে একে একে যথাযথ পদক্ষেপগুলি অনুসরণ করা অত্যন্ত গুরুত্বপূর্ণ।
চিৎসুই

1
আমি উইন্ডোজ এ আছি তবে এই সমাধানটি আমার পক্ষেও কাজ করেছে। এই সমস্যাটির কারণ কী আপনি ব্যাখ্যা করতে পারেন? এটি কি ইলেক্ট্রনের সাথে বাগ হতে পারে?
jbinvnt

@ জবিনভেন্ট হ্যাঁ, এটি ইলেক্ট্রন সীমাবদ্ধতা github.com/SimisedGREG/electron-vue/issues/872
কনস্ট্যান্টিন ভাদভকিন

পাইপলাইন বা কোনও আদেশের মাধ্যমে কীভাবে কেবল বৈদ্যুতিন-পুনর্নির্মাণ চালানো যায়
কিরাতক

57

আপনাকে প্যাকেজটি পুনর্নির্মাণ করতে হবে এবং এটি বাইনারি আপডেট করার জন্য এনপিএমকেও বলতে হবে । চেষ্টা করুন:

npm rebuild bcrypt --update-binary

@ আরবার্টক্লেপ এই আদেশের সাথে একটি আপেক্ষিক প্রশ্নের উত্তর দিয়েছেন, দেখুন

কেবল পুনর্নির্মাণগুলিই আমার সমস্যার সমাধান করেনি, এটি আমার অ্যাপ্লিকেশনটিতে কাজ করে।

আশা করি এটা সাহায্য করবে!


1
আমি ভেবেছিলাম যে পুনর্নির্মাণের উদ্দেশ্যটি ছিল বাইনারি আপডেট করা, আপনি কখন বাইনারি আপডেট করে পুনর্নির্মাণ করতে চান?
ববমফ

1
@ ববমফ আমি একইভাবে কেবল পুনর্নির্মাণের চেষ্টা করার চেষ্টা করছিলাম, ডক্স বলছে যে তারা আমাদের জন্য সবকিছু আপডেট করে .. তবে কেবল ত্রুটি - আমার সমস্যাটি ছিল আমার স্থানীয় উত্তরাধিকারে কাজ করা স্থানীয় উত্তরাধিকারকে নতুন স্থানীয় নোডজেএস / এনপিএম সংস্করণে সিঙ্ক করা। তাই আমি চারপাশে তাকালাম এবং "- আপডেট-বাইনারি" হ'ল এটি বলার উপায় ছিল যে এটি প্রাকৃতিকভাবে পুনর্নির্মাণের সাথে কীভাবে করা উচিত তা পরিবর্তন করতে এবং পরিবর্তন করতে।
আরপিচিওলি

30

সহজভাবে চালান:

npm uninstall bcrypt

অনুসরণ করেছেন:

npm install bcrypt(অথবা npm install, যদি bcrypt আপনার নির্ভরতা হিসেবে ঘোষণা করা হয় package.json ফাইল)


13

আপনি এই লিঙ্কটি দেখতে পারেন

আপনার নোড ভেরিসনটি এখনই পরীক্ষা করতে। NODE_MODULE_VERSION 51 ব্যবহারের অর্থ হ'ল আপনার নোড সংস্করণটি নোডেজ v7.x, NODE_MODULE_VERSION 57 এর অর্থ আপনার নোডকে v8.x আপগ্রেড করতে হবে, তাই আপনাকে আপনার নোড আপগ্রেড করতে হবে। এবং তারপরে npm rebuildআপনার প্রকল্পটি পুনর্নির্মাণের জন্য আপনার রান কমান্ডের প্রয়োজন


3
উত্তরটি নিজেই লিঙ্ক ছাড়াই সহায়ক হওয়া উচিত।
টোবিয়াস উইলফার্ট

একই সমস্যা 67 থেকে 57. করার অভিযোগ আমার ক্ষেত্রে আমি থেকে ডাউনগ্রেড ছিল 11/stableথেকে 8/stableসঙ্গে $ snap refresh node --channel=8/stableউবুন্টু হবে। তারপরেও তা করেছে $ npm rebuild
ড্যানিয়েল

এই উত্তরটি ভুল। NODE_MODULE_VERSION 51মানে .nodeফাইলটি নোড সংস্করণের বিপরীতে NODE_MODULE_VERSION 51 ব্যবহার করে সংকলিত হয়েছে And এবং ব্যবহারকারী 57 টি ব্যবহার করে নোড সংস্করণ ব্যবহার করছে, তাই তিনি সরাসরি এটি ব্যবহার করতে পারবেন না। ব্যবহারকারীর সংকলনটি পুনর্নির্মাণ করা উচিত।
আলসোটং

11

প্যাকেজ-লক.জসনের কারণে আপনার সম্ভবত এই সমস্যা আছে। আপনি যদি স্পষ্টভাবে চালিত হন, এমনকি আপনার নির্ভরতাগুলি পুনরায় সংশোধন বা পুনর্নির্মাণ থেকে আপনাকে আটকাতে পারে বলে মনে হচ্ছে npm rebuild। আমার জন্য এটি ঠিক করতে আমি নীচের সমস্তগুলি দৌড়েছি:

rm package-lock.json;
rm -rf node_modules;
npm install;

10

আপনার কাছে কেবল নোডজেএস-এর একটি সংস্করণ ইনস্টল রয়েছে কিনা তা নিশ্চিত হন। এই দুটি চেষ্টা করুন:

node --version
sudo node --version

আমি প্রথমে উত্স থেকে নোডজেএস ইনস্টল করেছি, তবে এটি ছিল ভুল সংস্করণ এবং নতুন সংস্করণটি ব্যবহার করে 'আপগ্রেড করা' nvmযা পূর্ববর্তী কোনও সংস্করণ সরিয়ে দেয় না এবং কেবল /root/.nvm/versions/...ডিরেক্টরিতে পছন্দসই সংস্করণ ইনস্টল করে । তাই sudo nodeএখনও পূর্ববর্তী সংস্করণে প্রতি নির্দেশ ছিল থাকাকালীন nodeনতুন সংস্করণে প্রতি নির্দেশ করা হয়।


গাহ! কেন আমি এই ভেবে দেখিনি! পোস্ট করার জন্য ধন্যবাদ তাই আমি ফেসপাম করতে পারি।
গোলকধাঁধা

3

আমি একই ত্রুটি পেয়েছি তবে আমি ডকারের ধারক ব্যবহার করে একটি নোড অ্যাপ্লিকেশন চালানোর চেষ্টা করছিলাম।

আমি নোড_মডিউল ডিরেক্টরিটি অগ্রাহ্য করার জন্য একটি ডকিরিগনোর ফাইল যুক্ত করে এটি ঠিক করেছি যাতে ডকারের চিত্রটি তৈরি হয় তখন এটি আমার হোস্টের জন্য সংকলিত নোড_মডিউলগুলিতে অনুলিপি না করে আমার (আলপাইন) চিত্রটি নেটিভ প্যাকেজগুলি তৈরি করে ( ।


আমার জন্য পরিশ্রমী ... যুক্ত: node_modules/এবংpackage-lock.json
জিওভান আফনসো

3

আমার সমস্যাটি ছিল ব্যবহারকারী-ত্রুটিযুক্ত: এটি নিশ্চিত করুন যে আপনি নোডের যে সংস্করণটি চালনার জন্য ব্যবহার করছেন সেটি এনপিএম ইনস্টল বা সুতা চালানোর সময় আপনি ব্যবহার করছেন।

আমি নোডের সংস্করণকরণের জন্য এনভিএম ব্যবহার করি এবং টার্মিনালের মাধ্যমে সুতা চালাচ্ছিলাম, তবে আমার আইডিইটি নোডের পুরানো সংস্করণটি চালানোর সময় ব্যবহার করার জন্য সেট করা হয়েছিল এবং এটি উপরে ত্রুটি ছুঁড়ে দিচ্ছিল। রান আইডিএর নোডের সংস্করণটির সাথে নোড - রূপান্তরটি নোডে মিলছে বিষয়টি ঠিক করেছে।


1

রোবটজগুলির সাথে আমারও একই সমস্যা ছিল। কিছু অবমূল্যায়িত কোড ছিল যার জন্য নোড ভি 11 দরকার ছিল, তবে আমি ইতিমধ্যে v12 তে ইলেক্ট্রন কোডটি সংকলন করেছি। সুতরাং আমি একই ত্রুটি পেয়েছিলাম। এখানে মূলত আমি ইলেকট্রন এবং আমার অন্যান্য নির্ভরতাগুলি নোড ভি 12 থেকে নোডে পুনর্নির্মাণের চেষ্টা করছিলাম বলে এখানে কিছুই কাজ করেনি।

আমি এখানে যা করেছি তা এখানে রয়েছে (এর একটি অংশ চিৎসুইয়ের উত্তর, whereণ যেখানে creditণ প্রদান করা হয় তার উপর ভিত্তি করে):

  • প্যাকেজ.জসন ব্যাক আপ করুন
  • সম্পূর্ণ নোড_মডিউল ফোল্ডার মুছুন
  • সম্পূর্ণভাবে প্যাকেজ_লক.জসন মুছুন
  • প্যাকেজ.জসন মুছুন (পরে পুনরায় লাগানো হবে)
  • প্রকল্পের ডিরেক্টরিতে থাকা কোনও উন্মুক্ত সম্পাদক এবং অন্যান্য সিএমডি উইন্ডো বন্ধ করুন।
  • npm initপ্যাকেজ পুনরায় চালু করতে চালান, তারপরে পুরানো ব্যাক আপ প্যাকেজ.জসনের সাথে ডেটা হারিয়েছে
  • চালান npm i
  • স্থির :)

আশাকরি এটা সাহায্য করবে.


1

ইলেক্ট্রন মডিউলগুলির জন্য, বৈদ্যুতিন-পুনর্নির্মাণ ইনস্টল করুন।

Format:
electron-rebuild -o <module_name> -v <electron version>

Example:
electron-rebuild -o myaddon -v 9.0.0-beta.6

আপনি বর্তমান ডিরেক্টরিতে ইনস্টল করা একই সংস্করণটি উল্লেখ করুন

আপনার এই অভিজ্ঞতা থাকতে পারে যেখানে একটি স্ট্যান্ডার্ড নোড-জিপ বিল্ড 64৪ হিসাবে রিপোর্ট করবে, তারপরে একটি বেসিক ইলেক্ট্রন-পুনর্নির্মাণ 76 76 এর প্রতিবেদন করবে, যতক্ষণ না আপনি সঠিক সংস্করণটি সহ -v যোগ করবেন না এটি আসল সংস্করণ ৮০ (9.০.০-বিটা-র ক্ষেত্রে) b 6)


1

আমি নোড_মডিউলগুলি ফোল্ডারটি মুছলাম এবং চালাব npm installএবং আমার অ্যাপ্লিকেশনটি কোনও ত্রুটি ছাড়াই শুরু হয়েছিল।


0

সিস্টেমড দিয়ে আমার অ্যাপটি চালানোর সময় আমি এই ত্রুটিটি পেয়েছি:

ExecStart=/usr/local/bin/node /srv/myapp/server.js

তবে আমি npm installশেলের জন্য আলাদা সংস্করণ ব্যবহার করছিলাম :

$ which node
/home/keith/.nvm/versions/node/v8.9.0/bin/node

এটি যদি আপনার সেটআপ হয় তবে আপনি সার্ভিস ফাইলে নোড সংস্করণটিকে হার্ডকোড করতে পারেন বা এটির মতো কাজ করতে পারেন


0

বিভিন্ন জিনিস চেষ্টা করার পরে। এটি কাজ করে।

আপনার নোড মডিউল ফোল্ডার মুছুন এবং চালান

npm i

0

আমি একই সমস্যাটি জিআরপিসি মডিউলের সাথে মোকাবিলা করেছি এবং আমার ক্ষেত্রে, আমি ইলেক্ট্রন ব্যবহার করছিলাম এবং এনভির ভেরিয়েবল "এক্সপোর্ট এনএমপি_কনফিগ_টারেট = 1.2.3" তে একটি ভুল ইলেক্ট্রন সংস্করণ স্থাপন করেছি, ইলেক্ট্রন সংস্করণে সেট করে যা আমি ব্যবহার করছি ইস্যুটি সমাধান করা হয়েছে আমার শেষ আশা করি এটি এখানে দেওয়া হিসাবে কাউকে env ভেরিয়েবল সেট করতে সহায়তা করবে ( https://electronjs.org/docs/tutorial/used-native-node-modules#the-npm-way )


0

আপনি সম্পূর্ণরূপে bcrypt অপসারণ এবং bcryptjs ইনস্টল করতে পারে। এটি ~ 30% ধীর, তবে এর কোনও নির্ভরতা নেই, তাই এটি ইনস্টল করতে কোনও ব্যথা নেই।

npm i -S bcryptjs && npm uninstall -S bcrypt

আমরা আমাদের অ্যাপ্লিকেশনগুলির জন্য এটি সফলভাবে ইনস্টল করেছি। নোড v8.x এর জন্য ব্রেসিপ্টে এডাব্লুএস উদাহরণগুলিতে সংকলন না করার বিষয়ে আমাদের সমস্যা ছিল


0

সম্ভাব্য, নোড জেএস সংস্করণগুলির অসঙ্গতি যা সমস্যা সৃষ্টি করে। ডকুমেন্টেশন হিসাবে বলা হয়েছে । Lts রিলিজের একটি ব্যবহার নিশ্চিত করুন। যেমন আপনার ডকফাইলে এটি নির্দিষ্ট করুন:

# Pull lts from docker registry
FROM node:8.12.0

# ...

0

আপনি যে নোড সংস্করণটি ব্যবহার করছেন তা পরীক্ষা করুন, এটি কী প্রত্যাশা করা হয় তার মধ্যে মিল নয়।


0

আমার একই সমস্যা ছিল এবং এগুলির সমাধানগুলির কোনওটিই কাজ করে না এবং কেন জানি না, তারা একই ধরণের সমস্যার জন্য অতীতে আমার জন্য কাজ করেছিল।

যাইহোক সমস্যা সমাধানের জন্য আমি নোড-প্রি-জিপ ব্যবহার করে প্যাকেজটি নিজেই পুনরায় তৈরি করেছি

cd node_modules/bcrypt
node-pre-gyp rebuild

এবং সবকিছু প্রত্যাশা অনুযায়ী কাজ করেছে।

আশাকরি এটা সাহায্য করবে


0

আমি সবেমাত্র এই ত্রুটিটি চালানোর পথে পেয়েছি ইনস্টল করা "কডেন্স" স্ক্রিপ্টটি নোডেজের জন্য প্রথমে পরীক্ষা করে এবং নোডেজ না থাকলে কেবল নোড চালায়। আমার নোডের সর্বশেষতম সংস্করণটি আমার bin / বিন ডিরেক্টরিতে লিঙ্ক করা আছে তবে নোডেজগুলি একটি পুরানো সংস্করণ চালায় যা আমি আনইনস্টল করতে ভুলে গিয়েছিলাম তবে এখনও অবধি সমস্যা হয়নি।

সুতরাং এই সমস্যাযুক্ত লোকেরা নোড এবং নোডেজগুলি নোডের একই সংস্করণটি চালিত কিনা তা পরীক্ষা করতে পারে ...


0

আমার ক্ষেত্রে, আমি আমার অফিসের প্রক্সিতে ছিলাম যা কিছু প্যাকেজ এড়িয়ে চলেছিল। আমি যখন আমার অফিসের প্রক্সি থেকে বেরিয়ে এসে চেষ্টা করেছি npm installএটি কাজ করে। হতে পারে এটি কারওর জন্য সহায়তা করে।

তবে কারণটি সনাক্ত করতে আমার কয়েক ঘন্টা সময় লেগেছিল।


0

আমার ক্ষেত্রে আমি nodejsপরিবর্তে চলমান ছিল nodenodejsপ্যাকেজ পরিচালকের দ্বারা ইনস্টল হওয়ার কারণে :

# which node
/home/user/.nvm/versions/node/v11.6.0/bin/node

# which nodejs
/usr/bin/nodejs


0

আপনার কেবল নীচের কমান্ডগুলি চালানো দরকার:

$ rm -rf node_modules
$ rm -rf yarn.lock
$ yarn install

এবং পরিশেষে

$ ./node_modules/.bin/electron-rebuild

yarn add electron-rebuildএটি আপনার নির্ভরতাগুলির মধ্যে না থাকলে ভুলে যাবেন না ।


0

আমি এই ত্রুটিটি একটি ইলেক্ট্রন অ্যাপ্লিকেশনটিতে দুবার আঘাত করেছি এবং এটি প্রমাণিত হয়েছে যে সমস্যাটি রেন্ডার প্রক্রিয়াটির পরিবর্তে মূল প্রক্রিয়া থেকে কিছু মডিউল ব্যবহার করা দরকার। Pdf2json এবং নোড-ক্যানভাস ব্যবহার করে ত্রুটি ঘটেছে occurred সেই কোডগুলি যে মডিউলগুলি সূচক htm (রেন্ডার প্রক্রিয়া) থেকে মেইন.জেএস (মূল প্রক্রিয়া) এ প্রয়োজনীয় তা সরানো ত্রুটিটি স্থির করে এবং অ্যাপটি পুনরায় তৈরি করে পুরোপুরি চলতে থাকে ran এটি সমস্ত ক্ষেত্রে সমস্যার সমাধান করবে না তবে আপনি ইলেক্ট্রন অ্যাপ্লিকেশন লিখছেন এবং এই ত্রুটিটি চালাচ্ছেন কিনা তা পরীক্ষা করা প্রথম জিনিস।


0

আমার জন্য যা কাজ করেছে তা এখানে। আমি ইলেক্ট্রন জেসের সাথে লুপড-ব্যাক নোড মডিউলটি ব্যবহার করছি এবং এই সমস্যার মুখোমুখি হয়েছি । অনুসরণ করার পরে অনেক কিছুই আমার পক্ষে কাজ করেছিল।

স্ক্রিপ্টগুলিতে আপনার প্যাকেজ.জসন ফাইলটিতে নিম্নলিখিত লাইনগুলি যুক্ত করুন:

  ... 
"scripts": {
        "start": "electron .",
        "rebuild": "electron-rebuild"
    
      },
...

এবং তারপরে নিম্নলিখিত কমান্ডটি চালান npm run rebuild

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.