কীভাবে আমি এনপিএম ব্যবহার করে বর্তমান ডিরেক্টরিতে প্যাকেজ.জসন নির্ভরতা ইনস্টল করব


202

আমার একটি ওয়েব অ্যাপ্লিকেশন রয়েছে: ফুপ ! আমি package.jsonমূল মধ্যে একটি আছে । আমি নির্দিষ্টভাবে সমস্ত নির্ভরতা ইনস্টল করতে চাই node_modules directory। আমি এটা কিভাবে করবো?

আমি যা চাই

বলি আমার দুটি widgetনির্ভরতা রয়েছে। আমি এই জাতীয় ডিরেক্টরি কাঠামো দিয়ে শেষ করতে চাই:

node_modules/
  widgetA
  widgetB
fooapp/
  package.js
  lib
  ..

আমি যা পাই

আমি যখন দৌড়ে npm install fooapp/ যাই তখন আমি এটি পাই:

node_modules/
  fooapp/
    node_modules/
      widgetA
      widgetB
    package.js
    lib/
    ..
fooapp/
  package.js
  lib/
  ..

npm আমার অ্যাপ্লিকেশন ডিরেক্টরিটির একটি অনুলিপি নোড_মডিউলগুলি dir এ তৈরি করে এবং অন্য নোড_মডিউলগুলির ডিরেক্টরিতে প্যাকেজগুলি ইনস্টল করে ।

আমি বুঝতে পারি এটি প্যাকেজ ইনস্টল করার জন্য অর্থবোধ করে। তবে আমি require()আমার ওয়েব অ্যাপ্লিকেশনটি অন্য কোনও কিছুর মধ্যে নেই, আমি এটি সরাসরি চালাই it আমি একটি নির্দিষ্ট নোড_মডিউল ডিরেক্টরিতে আমার নির্ভরতা ইনস্টল করার একটি সহজ উপায় খুঁজছি।

উত্তর:


389

চলমান:

npm install

আপনার অ্যাপ্লিকেশন ডিরেক্টরিটির ভিতরে থেকে (যেমন প্যাকেজ.জসনটি অবস্থিত) এখানে বর্ণিত হিসাবে মডিউল হিসাবে ইনস্টল না করে আপনার অ্যাপের জন্য নির্ভরতা ইনস্টল করবে । এগুলি আপনার প্যাকেজ.জসন ফাইলের সাথে সম্পর্কিত ./node_modules এ স্থাপন করা হবে (এটি আসলে এর চেয়ে কিছুটা জটিল, সুতরাং এখানে এনপিএম ডক্স পরীক্ষা করুন )।

আপনি চাইলে নোড_মডিউলস দিরকে আপনার অ্যাপ্লিকেশনটির পিতামাতার দিরে সরিয়ে নিতে নিরস্ত হন, কারণ নোডের 'প্রয়োজনীয়' প্রক্রিয়া এটি বোঝে। তবে, আপনি যদি অ্যাপ্লিকেশনটির নির্ভরতাগুলি ইনস্টল / আপডেটের সাথে আপডেট করতে চান, এনপিএম স্থানান্তরিত 'নোড_মডিউলগুলি' দেখতে পাবে না এবং পরিবর্তে প্যাকেজ.জসনের সাথে সম্পর্কিত হয়ে একটি নতুন দির তৈরি করবে।

এটি প্রতিরোধ করতে, আপনার অ্যাপ্লিকেশন ডায়ার থেকে স্থানান্তরিত নোড_মডিউলগুলিতে কেবল একটি সিমলিংক তৈরি করুন:

ln -s ../node_modules node_modules

ফ্যান্টাস্টিক! আমি এটি চেষ্টা করে দেখব এবং উত্তরটি যদি এটি কাজ করে তবে তা স্বীকৃত হিসাবে চিহ্নিত করব।
ড্যানিয়েল বিয়ার্ডসলে

9
এটি একটি কাজ সমাধান যে সত্ত্বেও, আমি বুঝতে পারলাম npm link(দেখুন এ ধরনের পরিস্থিতি যেখানে আপনি অন্য ডিরেক্টরি থেকে দখল মডিউল প্রয়োজন আরও সুবিধাজনক stackoverflow.com/a/14387210/820520 )
melekes

14

আমার ক্ষেত্রে আমার করা দরকার

sudo npm install  

আমার প্রকল্পটি / var / www এর ভিতরে রয়েছে তাই আমারও যথাযথ অনুমতি নির্ধারণ করা দরকার।


15
sudo এনপিএম ইনস্টলের জন্য প্রয়োজন হতে পারে না।
অ্যালেন কুক

2
ব্যবহারকারীর উপর নির্ভর করে যেগুলি ইনস্টল করা জেএস ফাইল এবং নির্ভরতা ইনস্টল করা প্রয়োজন, আপনি চালাতে পারেন sudo -u [username] npm install। সত্যের পরে পুনরাবৃত্তভাবে ন্যায়বিচার npm installএবং chownনোড_মডিউলগুলি ডিরেক্টরি থেকে ভাল ।
TheLonelyGhost

5
সুডো দিয়ে এনপিএম চালাবেন না যতক্ষণ না আপনি ব্যবহার করছেন -g- এবং তারপরেও এটি পরিচালনা করার আরও ভাল উপায় আছে।
tkone

1
আপনি উত্তর দেওয়ার জন্য ধন্যবাদ, কিন্তু কেন এটি? তুমি কি ব্যাখ্যা করতে পারো? আমি বলতে চাইছি, আমার যদি এমন কোনও প্রকল্প হয় যেখানে আমি চাই বা রুল অনুমতি সহ একটি ফোল্ডার রাখতে এবং সেখানে -g ছাড়া নির্ভরতা ইনস্টল করতে পারি? সম্ভবত একটি ভাল কারণ আছে, কিন্তু আমি কয়েকবার sudo এনপিএম ইনস্টল করেছি (-g) ছাড়াই এবং কখনও কোনও সমস্যায় পড়েনি। চিয়ার্স!
aesede

1
@ রেডট্যাগ আমি এই ধরণের জিনিসগুলি করার সঠিক উপায় সম্পর্কে একমত, তবে কিছুক্ষণ পরে আমি লক্ষ্য করেছি যে এই আলোচনাটি উবুন্টু অভিমুখে চলেছে, মনে হচ্ছে এটি কিছু অনুমতি এবং ফোল্ডার পরিচালনা করার পদ্ধতিতে সমস্যা রয়েছে যা ব্যবহারকারীদের ব্যবহার করতে বাধ্য করছে sudo npm। আবার কেবল উবুন্টুতে।
aesede

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