এনপিএম এর মাধ্যমে ইনস্টল করা নোড মডিউলটি কীভাবে সম্পাদনা করবেন?


124

আমি নোড_সুইজ মডিউলটি ব্যবহার করছি, যা পরিবর্তে ভ্যালিডিটার মডিউলটি ব্যবহার করে।

আমি বৈধকরণকারী মডিউলটিতে পরিবর্তন করতে চাই, তবে মডিউলগুলি / নির্ভরতাগুলি ইনস্টল করতে আমি এনপিএম ইনস্টল ব্যবহার করেছি।

আমি কি কেবল নোড_মডিউলগুলির ভিতরে বৈধতাকারী মডিউলটিতে পরিবর্তন করতে পারি, বা নোড_মডিউলগুলি নির্ভরতা পুনরায় তৈরি করা হবে এবং যখন আমি হিরকুতে প্রকাশ করব বা পরের বার আমি এনপিএম ইনস্টল চালাব তখন সর্বশেষ সংস্করণটি পাওয়া যাবে?

কাঠামোটি এর মতো দেখাচ্ছে:

myNodeApplication
  - node_modules
     - swiz
         - node_modules
            - validator [this is the library I want to edit]

সাহায্যের জন্য ধন্যবাদ!

উত্তর:


242

আপনি সরাসরি ফাইলটি সম্পাদনা করতে পারেন, তবে এনপিএম আপডেট হওয়ার পরে এটি ওভাররাইট করা হবে, করণীয় সবচেয়ে ভাল কাজটি সোজা উত্সটিতে চলে যান।

যদি পরিবর্তনগুলি সামগ্রিক মডিউলটির কার্যকারিতা প্রভাবিত করে এবং অন্যের পক্ষে কার্যকর হতে পারে তবে আপনি গিথুব-এর মূল উত্সটিতে অবদান রাখতে এবং পরিবর্তনটি কার্যকর হওয়ার জন্য সন্ধান করতে পারেন।

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

গিথুব থেকে সরাসরি ইনস্টল করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

npm install https://github.com/<username>/<repository>/tarball/master


2
ধন্যবাদ! ঠিক এটাই আমি জানতে চেয়েছিলাম। এছাড়াও, এই পড়া অন্যদের জন্য ... আমি মডিউল package.json ফাইলে আমার GitHub উপর যে অন্তর্ভুক্ত করা চেয়েছিলেন, এবং তথ্য সম্পর্কে যে এখানে আছে: stackoverflow.com/a/8306715/1810875
user1810875

22
কাঁটাচামচ করার আগে আমি এটি স্থানীয় সিস্টেমে পরিবর্তন করছি তবে পরিবর্তনটি প্রভাবিত হবে বলে মনে হয় না। যে কোনও জাভাস্ক্রিপ্ট ফাইল যা নোড_মডিউল / প্যাকেজ_নাম / লিব / ফাইল_নাম.জেএসগুলি পরিবর্তন করে?
অনুসন্ধানী

1
কেবল একটি নোট, কিছু পরিবর্তন হয়েছে কিনা তা নিশ্চিত নয় তবে ব্যক্তিগতভাবে আমাকে গিট URL টি গিট হিসাবে নির্দিষ্ট করতে হয়েছিল: //github.com/ <user> / <package> .git "
ক্রেগ

5
@ জনডেভর কাস্টমাইজড মডিউলটি ইনস্টল করার পরিবর্তে, কেবলমাত্র তার ফোল্ডারে একটি সিম-লিঙ্ক তৈরি করতে "এনপিএম লিঙ্ক" কমান্ডটি ব্যবহার করুন: ডকস.এনএমজেজেস
ক্লি

3
এটিকে বের করে দেখলাম, আমাকে ফোল্ডারে নেভিগেট করতে হবে /node_modulesএবং রান npm installকরতে হবে তবে ঠিক আছে!
আদম মোইসা

6

নোড মডিউলগুলিতে পরিবর্তন করতে এবং চালিয়ে যাওয়ার জন্য আপনি প্যাচ-প্যাকেজ ব্যবহার করতে পারেন ।

এটি প্রথমে প্যাকেজের অভ্যন্তরে পরিবর্তন করে node_modulesএবং এরপরে নিম্নলিখিত কমান্ডটি চালিয়ে <package name>প্যাকেজটির নাম হিসাবে আপনি সুনির্দিষ্টভাবে পরিবর্তন করেছেন।

npx patch-package <package name>

প্যাচ-প্যাকেজটি patchesআপনার পরিবর্তনের প্রতিনিধিত্ব করে ভিতরে একটি ফাইলের সাথে একটি ফোল্ডার তৈরি করবে । এই ফাইলটি পরে গিটকে কমিট করা যায় এবং প্যাচগুলি পরে চালানো npx patch-package(কোনও যুক্তি ছাড়াই) পুনরুদ্ধার করা যায় ।

Ptionচ্ছিক পদক্ষেপ:

আপনি যখন "এনপিএম ইনস্টল" সম্পাদন করবেন তখন স্বয়ংক্রিয়ভাবে নির্ভরতা প্যাচ করতে আপনার প্যাকেজটির স্ক্রিপ্ট বিভাগে এইগুলি যুক্ত করুন j

"postinstall": "npx patch-package" 

1
খুব সুন্দর সমাধান যা কোন সমস্যা ছাড়াই আমার পক্ষে কাজ করেছে।
ヨ ハ ン ソ ン

এটা সত্যিই দুর্দান্ত! এফওয়াইআই: আমাকে "পোস্টইনস্টল" এর পরিবর্তে "প্রিনস্টল" ব্যবহার করতে হয়েছিল কারণ আমার প্যাচ নির্ভরতার পোস্টইনস্টল স্ক্রিপ্টে ছিল। আপনার যদি অন্য প্যাচগুলি পোস্টইনস্টল পর্যায়ে প্রয়োগ করার দরকার হয় তবে আপনি কীভাবে এটি বাস্তবায়ন করবেন?
সুপারল

1
অবিশ্বাস্য উত্তর, নেটলিফাইয়ে মোতায়েন করার আগে আমার একটি ডিপ পরিবর্তন করতে হবে। preinstall 'npx প্যাচ-প্যাকেজ' ছিল ম্যাজিক টিকিট। সঠিক চিত্রটি এখন ওয়েবসাইটে দেখানো হয়েছে।
দ্য বেটারজর্ট

1

আমি একটি নতুন মডিউল প্রকাশ করতে চাইনি এবং আমি npm installআমার পরিবর্তনগুলি ওভাররাইটও করতে চাইনি । আমি এই দুটি সমস্যার সমাধান খুঁজে পেয়েছি তবে @ স্বেদেলবারকের পরামর্শ গ্রহণ করা ভাল probably তবে আপনি যদি এটি করতে চান তবে এখানে কীভাবে:

  1. package.jsonআপনি সম্পাদনা করতে চান নির্ভরতা অপসারণ করতে আপনার ফাইল সম্পাদনা করুন।
  2. আপনার প্রকল্পের মধ্যে যান এবং /node_modulesফোল্ডারটি প্রতিস্থাপনের জন্য আপনার ভাণ্ডারে অন্য কোথাও সরান। সুতরাং এখন /node_modules/dependencyহয়/dependency
  3. cd নির্ভরতা ডিরেক্টরিতে টাইপ করুন এবং টাইপ করুন npm link
  4. cdআপনার প্রকল্পের ডিরেক্টরি ও টাইপ রুট মধ্যে npm link dependency এটি গুরুত্বপূর্ণ যে আপনি এই বাইরে না /node_modulesএবং/dependency

যদি সবকিছু কাজ করে তবে আপনার এখন তৈরি হওয়া একটি সিমিলিংক থাকা উচিত /node_modules/dependency। আপনার প্রকল্পটি কাজ করে কিনা তা এখন আপনি চালাতে পারেন।

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