- সেভ এবং - সেভ-দেব মধ্যে পার্থক্য কি?


746

পার্থক্য কি:

npm install [package_name] --save

এবং:

npm install [package_name] --save-dev

এটার মানে কি?


4
হ্যাঁ আমি এ সম্পর্কে বিভ্রান্ত হয়ে পড়েছি - যদি আপনি জেনকিনসের মতো ক্রমাগত সংহতকরণ ব্যবহার করেন, জেনকিনস কি পরীক্ষা চালানোর জন্য ডেভিনির্ভেন্সি মডিউলগুলি ব্যবহার করতে জানেন? আমি অনুমান করি তবে এটি অত্যন্ত সুস্পষ্ট নয়।
আলেকজান্ডার মিলস

5
সম্ভবত প্রশ্নটি এডিট করেও বলুন, নির্ভরতা এবং ডেভিনির্ভরতার মধ্যে কার্যকরী পার্থক্য কী?
আলেকজান্ডার মিলস

5
--Save-dev বিকল্পের মাধ্যমে ইনস্টল করা প্যাকেজগুলি ব্যবহারকারী ব্যবহারের সময় পুনরায় ইনস্টল করা হয় না npm install --production। এটি অপারেশনাল পার্থক্য ( আরও তথ্যের জন্য https://docs.npmjs.com/cli/install দেখুন)।
অ্যান্ড্রু

7
@ মুহাম্মাদ উমর ঠিক এই কারণেই লোকেরা এখানে প্রশ্ন জিজ্ঞাসা করে - যাতে 'কোনও ধারণা খুঁজে পাওয়া যায়'। সম্ভবত একটি আসল উত্তর যুক্ত করা আরও উত্পাদনশীল হবে - এটি অবশ্যই একটি আকর্ষণীয় পার্থক্য যা আমি অবগত ছিল না।
সাইমন_ ওয়েভার

3
এছাড়াও যদি আপনি পরিবেশে পরিবেশের পরিবর্তনশীল সেট করে রাখেন NODE_ENVতবে কেবল npm installস্বয়ংক্রিয়ভাবে বিকাশ প্যাকেজগুলি বাদ দেয়।
মুহাম্মদ উমার

উত্তর:


588
  • --save-devবিকাশের উদ্দেশ্যে প্যাকেজ সংরক্ষণ করতে ব্যবহৃত হয়। উদাহরণ: ইউনিট পরীক্ষা, মিনিফিকেশন ..
  • --save অ্যাপ্লিকেশনটি চালানোর জন্য প্রয়োজনীয় প্যাকেজটি সংরক্ষণ করতে ব্যবহৃত হয়।

150
কিভাবে তারা ব্যতিক্রম? আমি কখন অন্য একটি বনাম ব্যবহার করব? - সেভ-দেবের অধীনে থাকলে আমি কী এখনও প্যাকেজটিকে উত্পাদনে ব্যবহার করতে পারি?
ডেভ ভয়েসস

14
উত্তরটি সংক্ষিপ্তভাবে আপনার প্রথম দুটি প্রশ্নের উত্তর দেয়। সর্বশেষ প্রশ্নের উত্তর, "আমি যদি প্যাকেজটি - সেভ-দেবের অধীনে থাকে তবে আমি কি এখনও প্যাকেজটিকে উত্পাদনে ব্যবহার করতে পারি," "না"। যদিও এটি করা অবশ্যই সম্ভব , এটি উদ্দেশ্যযুক্ত নয়।
টেকনেটিয়াম

61
শর্টহ্যান্ড সংস্করণগুলি: -Dছোট --save-devএবং এর -Sজন্য সংক্ষিপ্ত--save
ক্রিসকো ২co

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

33
মনে রাখবেন যে এনপিএম সংস্করণ 5.0.0 হিসাবে --saveবিকল্পটির আর প্রয়োজন নেই। যদি আপনি npm install my-packageএটি করেন তবে এটি প্যাকেজ.জসন ফাইলে নির্ভরতা হিসাবে "আমার-প্যাকেজ" যুক্ত করবে।
মার্টিন ক্যারেল

642

মধ্যে পার্থক্য --saveএবং --save-devঅবিলম্বে লক্ষণীয় নাও হতে পারে যদি আপনি তাদের উভয় আপনার নিজের প্রকল্পে চেষ্টা করেছি। সুতরাং এখানে কয়েকটি উদাহরণ দেওয়া হল ...

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

npm install moment --save

এটি আপনার প্যাকেজ.জসনে একটি নতুন মান তৈরি করবে

"dependencies": {
   ...
   "moment": "^2.17.1"
}

আপনি যখন বিকাশ করছেন, এটি সত্যিই টেস্ট স্যুটগুলির মতো সরঞ্জামগুলি ব্যবহার করতে সহায়তা করে এবং জুঁই-কোর এবং কর্মের প্রয়োজন হতে পারে । এই ক্ষেত্রে আপনি ব্যবহার করবে

npm install jasmine-core --save-dev
npm install karma --save-dev

এটি আপনার প্যাকেজ.জসনে একটি নতুন মান তৈরি করবে

"devDependencies": {
    ...
    "jasmine-core": "^2.5.2",
    "karma": "^1.4.1",
}

আপনাকে যা করতে প্রয়োজন হবে না , তার স্বাভাবিক অবস্থায় অ্যাপটি চালাতে পরীক্ষা স্যুট তাই এটি একটি হল --save-devটাইপ নির্ভরতা, আর কিছুই। আপনি দেখতে পাচ্ছেন কীভাবে কী ঘটছে তা যদি আপনি বুঝতে না পারেন তবে এটি কল্পনা করা কিছুটা শক্ত।

সরাসরি এনপিএম ডক্স ডক্স # নির্ভরতা থেকে নেওয়া

নির্ভরতা

নির্ভরতাগুলি একটি সাধারণ অবজেক্টে নির্দিষ্ট করা হয় যা কোনও সংস্করণ পরিসরে প্যাকেজের নাম ম্যাপ করে। সংস্করণ পরিসরটি একটি স্ট্রিং যা এক বা একাধিক স্পেস-বিচ্ছিন্ন বর্ণনাকারী থাকে। নির্ভরতাগুলি একটি টার্বল বা গিট URL দিয়েও চিহ্নিত করা যায়।

দয়া করে আপনার নির্ভরতা অবজেক্টে পরীক্ষার জোতা বা ট্রান্সপোর্টারগুলি রাখবেন না। নীচে ডিভিনিডেন্সিগুলি দেখুন।

এমনকি দস্তাবেজে, এটি আপনাকে পরীক্ষার জোতাগুলির মতো মডিউলগুলির জন্য - সেভ-ডেভ ব্যবহার করতে বলে।

আমি আশা করি এটি সাহায্য করে এবং স্পষ্ট।


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

1
প্যাকেজটি কেবল কেন জানে না (সিদ্ধান্ত নেয়) যদি এটি কোনও রিলিজ প্যাকেজ বা কোনও ডেভ প্যাকেজ এবং - উভয়র জন্য ব্যবহার করা হয়। প্যাকেজ বিকাশকারী যখন অভিপ্রায় তৈরি করে তখন ইনস্টলকারী ব্যবহারকারীকে এটি সিদ্ধান্ত নিতে অদ্ভুত বলে মনে হচ্ছে।
কোডগ্রু

4
কোডগ্রু, আপনি যদি jQuery ব্যবহার করেন কেবল প্রতিক্রিয়া উপাদানগুলির পরীক্ষার জন্য এটি সেভ-ডেভ এ চলে যাবে, তবে আপনি সম্ভবত এটি আপনার মূল প্রকল্পটি তৈরি করতে ব্যবহার করতে পারবেন না। হ্যাঁ, এটি সম্ভব। সুতরাং প্যাকেজকারী কেন জানবে যে আপনি এটি দিয়ে কী করছেন?
মাইকেল ব্রুস

2
অনেক পরিষ্কার। আমি প্রথমবারের জন্য বুটস্ট্রা + নোড.জেএস এর ওয়ার্কফ্লো শিখছি এমন একটি এম্বেডযুক্ত লোক। কাফের বাইরে পার্থক্য কী তা স্পষ্ট নয়।
Leroy105

3
@ ইয়াকোভেল সেভ-ডেভ অর্থ প্যাকেজগুলি ইনস্টল করা নেই যখন অন্য কেউ আপনার প্যাকেজটিকে নির্ভরতা হিসাবে ইনস্টল করে। যে প্যাকেজগুলি কেবল স্ক্রিপ্টগুলি চালানোর জন্য যেমন স্টার্ট / বিল্ড ব্যবহার করতে ব্যবহৃত হয় সেগুলি প্রয়োজন হবে না, সুতরাং সেগুলি ডেভ-নির্ভরতাতে রেখে দেওয়া হয়েছে। আপনি যদি কোনও ওয়েব অ্যাপে কাজ করছেন এবং অন্যের ব্যবহারের জন্য কোনও প্যাকেজে নেই, আপনার সম্ভবত এটি নিয়ে মোটেই উদ্বিগ্ন হওয়া উচিত নয়।
রিভ

110

ডিফল্টরূপে, এনপিএম কেবল নোড_মডিউলগুলির অধীনে একটি প্যাকেজ ইনস্টল করে। আপনি যখন নিজের অ্যাপ্লিকেশন / মডিউলটির জন্য নির্ভরতা ইনস্টল করার চেষ্টা করছেন, আপনাকে প্রথমে এগুলি ইনস্টল করতে হবে এবং তারপরে dependenciesআপনার বিভাগে যুক্ত করুন package.json

--save-devতৃতীয় পক্ষের প্যাকেজটির প্যাকেজের উন্নয়ন নির্ভরতা যুক্ত করে। কেউ আপনার প্যাকেজ ইনস্টল করলে এটি ইনস্টল করা হবে না। এটি সাধারণত তখনই ইনস্টল হয় যদি কেউ আপনার উত্স সংগ্রহস্থলটিকে ক্লোন করে এবং এতে চালিত npm installহয়।

--saveপ্যাকেজের নির্ভরতাগুলিতে তৃতীয় পক্ষের প্যাকেজ যুক্ত করে। এটি যখনই কেউ চালাবে প্যাকেজটির সাথে একত্রে ইনস্টল করা হবে npm install package

দেব নির্ভরতা হ'ল সেই নির্ভরতা যা কেবল প্যাকেজ বিকাশের জন্য প্রয়োজন। এর মধ্যে পরীক্ষার রানার, সংকলক, প্যাকেজার ইত্যাদি অন্তর্ভুক্ত থাকতে পারে Both উভয় প্রকার নির্ভরতা প্যাকেজের package.jsonফাইলে সংরক্ষণ করা হয় । --saveযোগ করে dependencies, --save-devযোগ করেdevDependencies

এনপিএম ইনস্টল ডকুমেন্টেশন এখানে উল্লেখ করা যেতে পারে।


37
আমি এটি সন্দেহ করেছিলাম ... আপনি যদি একটি ওয়েব অ্যাপ তৈরি করেন যা কোনও প্যাকেজ হয়ে উঠবে না যেমন এনপিএম থেকে ডাউনলোড হয়, আপনি যদি অন্যের সাথে ভাগ করে নেওয়ার জন্য কোনও প্যাকেজ বিকাশ করে থাকেন তবে আপনি - সেভ-ডেভ এবং - সেভকে আন্তঃআযোগে ব্যবহার করতে পারেন পার্থক্য বুঝতে গুরুত্বপূর্ণ।
ভিএফইন

13
অবশেষে এমন কাউকে ধন্যবাদ জানুন যে আপনি এনপিএম ইনস্টলটি ব্যবহার করার সময় এর উদ্দেশ্য বলেছিলেন
ক্যাপচারড

3
--save এখন এনপিএম ইনস্টলের সাথে ডিফল্ট হয়েছে 2017 এ এনপিএম 5 প্রকাশের সাথে
NattyC

অপেক্ষা করুন, জটিল বাক্যগুলি কেন? ডেভ ডিপেন্ডে ডেভেলপার প্যাকেজগুলি ইনস্টল করতে পারে এবং এটি কেবল ডেভডিপেন্ডেন্সি আপডেট করা হবে। সুতরাং যখন নতুন বিকাশকারী প্রকল্প কোডবেস ক্লোন করুন এবং এনপিএম ইনস্টল করুন>> এখানে কেবল dependency package name is going to install.নোড_মডিউলগুলিতে চালাবেন .. ডেভ-ডিপেন্ডেন্সির মতো বিকাশকারীর প্যাকেজ নয়।
অনুপম মৌর্য

60

এর নিখুঁত উদাহরণ হ'ল:

$ npm install typescript --save-dev

এই ক্ষেত্রে, আপনি বিকাশের জন্য টাইপস্ক্রিপ্ট (একটি জাভাস্ক্রিপ্ট-পার্সেবল কোডিং ভাষা) উপলভ্য করতে চান, তবে একবার অ্যাপ্লিকেশন স্থাপন করা হয়ে গেলে এটি আর প্রয়োজন হয় না, কারণ সমস্ত কোড জাভাস্ক্রিপ্টে স্থানান্তরিত হয়েছে। এর মতো, এটি প্রকাশিত অ্যাপে অন্তর্ভুক্ত করার কোনও অর্থ নেই। প্রকৃতপক্ষে, এটি কেবল স্থান গ্রহণ করবে এবং ডাউনলোডের সময় বাড়িয়ে তুলবে।


4
একই হিসাবে যায়: "$ npm ইনস্টল গ্রান্ট - সেভ-দেব", কারণ এটি উন্নয়নের জন্য কার্যকর, তবে স্থাপনার জন্য নয়।
জ্যাকালোপ

1
একটি পার্শ্ব নোট: মাইক্রোসফ্ট @ টাইপ / এক্সএক্সএক্সএক্স প্যাকেজগুলিকে নির্ভরতা হিসাবে ইনস্টল করার পরামর্শ দিচ্ছে, ডেভডেপেন্ডেন্সগুলি github.com/Mic
ডেভ

2
যা আমি বিভ্রান্তিকর মনে করি তা এটি কীভাবে গুরুত্বপূর্ণ? ব্যবহার করে সংরক্ষণ করা প্যাকেজগুলি --saveকেবলমাত্র node_modulesফোল্ডারে সংরক্ষণ করা হয়েছে । কোড মোতায়েন করা ওয়েবসাইটের অন্তর্ভুক্ত নয়।
কোকোডোকো

6
@ কোকোডোকো আপনি --save-devপতাকাটি ব্যবহার করার সময় প্যাকেজটি আপনার devDependenciesঅবজেক্টে যুক্ত হবে। যদি / যখন কেউ আপনার প্যাকেজ ইনস্টল করে , সমস্ত dependenciesডাউনলোড হয় তবে তা devDependenciesহয় না, কারণ রানটাইম এগুলি প্রয়োজন হয় না। উত্তর হিসাবে বর্ণিত হয়েছে, এটি তাদের সময় এবং স্থান সাশ্রয় করে। আপনার প্যাকেজ ফাইলগুলিতে বিকাশকারীরা নিজেই npm installইনস্টল করতে প্যাকেজ ডিরেক্টরিতে চালাতে devDependenciesপারে।
জসজিৎ সিং মারওয়াহ

আপনি যদি গিথুব থেকে টাইপ করেন এবং টাইপ করেন npm installতবে devDependenciesএগুলি উপেক্ষা করা হবে?
কোকোডোকো

40

আমাকে যদি আপনি একটি উদাহরণ দিতে,

  • আপনি খুব সিরিয়াস এনপিএম লাইব্রেরির বিকাশকারী । যা প্যাকেজটি পরীক্ষা করতে বিভিন্ন পরীক্ষার লাইব্রেরি ব্যবহার করে।
  • একজন ব্যবহারকারী আপনার গ্রন্থাগারটি ডাউনলোড করেছেন এবং তাদের কোডে এটি ব্যবহার করতে চান। তাদেরও কি আপনার পরীক্ষার লাইব্রেরিগুলি ডাউনলোড করার দরকার আছে? হতে পারে আপনি jestপরীক্ষার জন্য ব্যবহার করেন এবং তারা ব্যবহার করে mocha। আপনি কি সেগুলি ইনস্টল করতে চান jest? শুধু আপনার লাইব্রেরি চালাতে?

কোন অধিকার? এ কারণেই তারা ভিতরে devDependencies

যখন কেউ করে, npm i yourPackageশুধুমাত্র করা প্রয়োজন লাইব্রেরি চালাই আপনার লাইব্রেরি ইনস্টল করা হবে। আপনি যে লাইব্রেরিগুলিতে আপনার কোডটি বান্ডিল করতে বা পরীক্ষার জন্য এবং উপহাস করার জন্য ব্যবহার করেছিলেন সেগুলি ইনস্টল করা হবে না কারণ আপনি এগুলি রেখেছেন devDependencies। বেশ সুন্দর?

সুতরাং, কেন বিকাশকারীদের ডেভিনির্ভরতাগুলি প্রকাশ করতে হবে ?

ধরা যাক আপনার প্যাকেজটি একটি ওপেন সোর্স প্যাকেজ এবং 100s লোক আপনার প্যাকেজে পুল অনুরোধ পাঠাচ্ছে। তাহলে তারা কীভাবে প্যাকেজটি পরীক্ষা করবে? তারা git cloneআপনার রেপো এবং তারা একটি করতে হবে যখন নির্ভরতা সেইসাথে devDependencies । কারণ তারা আপনার প্যাকেজটি ব্যবহার করছে না। তারা প্যাকেজটি আরও বিকাশ করছে, এইভাবে, আপনার প্যাকেজটি পরীক্ষা করার জন্য তাদের বিদ্যমান পরীক্ষার কেস পাশ করার পাশাপাশি নতুন লিখতে হবে। সুতরাং, তাদের আপনার ব্যবহার করা উচিত যা আপনি ব্যবহার করেছেন এমন সমস্ত পরীক্ষার / বিল্ডিং / উপহাসের পাঠাগার রয়েছে containnpm i
devDependencies


8
স্বীকৃত উত্তরের চেয়ে সর্বাধিক ভোট সহ উত্তরের চেয়ে অনেক ভাল কারণ এই উত্তরটি প্রকৃতিতে আরও ব্যবহারিক। ধন্যবাদ!
অপ্রকাশিত ব্যতিক্রম

এটি নির্বাচিত উত্তর হওয়া উচিত। অন্যান্য সমস্ত উত্তর সত্যিই ব্যাখ্যা করে না যে আপনি কেন অন্যটির উপরে ব্যবহার করবেন।
রকি কেভ

34

এই উত্তরটিতে এবং এনপিএম ডক্স অনুসারে @ অ্যান্ড্রেস-হাল্টগ্রেনের পরামর্শ অনুসারে :

যদি কেউ তাদের প্রোগ্রামে আপনার মডিউলটি ডাউনলোড এবং ব্যবহার করার পরিকল্পনা করে থাকে, তবে তারা সম্ভবত আপনার ব্যবহার করা বাহ্যিক পরীক্ষা বা ডকুমেন্টেশন ফ্রেমওয়ার্কটি ডাউনলোড এবং বিল্ড করতে হবে না।

যাইহোক, ওয়েব অ্যাপ্লিকেশন বিকাশের জন্য, ইওমেন (একটি মজাদার সরঞ্জাম যা পিয়ার-রিভিউড, অন্য বিষয়গুলির মধ্যে প্রাক-লিখিত প্যাকেজ.জসন ফাইল ইনস্টল করে) সমস্ত প্যাকেজকে ডেভডিপেনডে এবং নির্ভরতার মধ্যে কিছুই রাখে না, সুতরাং দেখা যাচ্ছে যে ব্যবহারটি --save-devএকটি নিরাপদ বাজি ওয়েব অ্যাপ্লিকেশন বিকাশে, কমপক্ষে।


3
নোট করুন যে গল্প ব্যবহার করার সময় এবং প্যাকেজগুলি --save-devপ্রয়োজনীয় প্রয়োজনীয়তাগুলি ইনস্টল করে না এমন প্যাকেজ ইনস্টল করার সময় আমি সমস্যাগুলি নিয়ে চলেছি । চলমান --saveঐ অনুপস্থিত dependancies ইনস্টল করা নেই।
নিক এম

18
আমি আরও নোট করতে চাই যে আমি এখন --saveপরীক্ষার এবং ডকুমেন্টেশন নির্ভরতা (এনপিএম ডক্স অনুসারে) ব্যতীত সকলের জন্য ব্যবহার করছি । আমি ভাবতে শুরু করছি যে ইওমানের উদাহরণটি আমি উপরে উল্লেখ করেছি সেরা অনুশীলনের একটি ভাল উদাহরণ নয়
ওয়েফেয়ার_বয়

আমারও তাই মনে হয়, আপনার কেন প্রয়োজন হবে --save-devএখানে প্রতিটি উত্তর
দিয়েই

20

--save-devআপনার প্যাকেজ বর্ণনাকারী ফাইলটিতে সেমভার স্পেসকে "ডেভডিনির্ভেনডেন্সগুলি" অ্যারে --saveসংরক্ষণ করে , পরিবর্তে "নির্ভরতা" এ সংরক্ষণ করে।


83
এবং কার্যকরী পার্থক্য কি?
আহ্নবিজক্যাড

6
এই উত্তরটি আমার কাছে সর্বাধিক বোধগম্য করে তোলে, ডেভডেপেন্ডেন্সগুলি তখন উন্নয়নের জন্য প্রয়োজন তবে উত্পাদন নয়, তাই htmllint, sass সংকলন ইত্যাদি এবং নির্ভরতা হ'ল ডায়াপোরামার মতো উত্পাদন প্রয়োজনীয়তার জন্য যা জিনিসগুলি চালানোর জন্য উপস্থিত থাকতে হবে।
মিলিরি গরিলা

3
@ অ্যানবিজক্যাড এটির উত্তর এখানে দেওয়া হয়েছে তবে প্রাথমিক কার্যকরী পার্থক্যটি হ'ল ডেভিনিডেন্সিগুলি ট্রান্সটিভলি অন্তর্ভুক্ত নয়।
পেস

এটি ইতিমধ্যে জানে না এমন কারও জন্য এটি বর্ণনা করার সবচেয়ে স্বজ্ঞাত উপায় না, এটি ?: দেব --save-devআপনার প্রকল্পে প্যাকেজগুলিকে স্থানীয় করে --saveতোলে , তবে এগুলি আপনার নোড স্থাপনে স্থানীয় করে তোলে?
আহ্নবিজক্যাড

9

পরিষ্কার উত্তর ইতিমধ্যে সরবরাহ করা হয়েছে। তবে এটি কীভাবে devDependenciesপ্যাকেজ ইনস্টল করতে প্রভাবিত তা উল্লেখযোগ্য :

ডিফল্টরূপে, এনপিএম ইনস্টল প্যাকেজ.জেসনে নির্ভরতা হিসাবে তালিকাভুক্ত সমস্ত মডিউল ইনস্টল করবে। - উত্পাদনের পতাকা সহ (বা যখন NODE_ENV পরিবেশের পরিবর্তনশীল উত্পাদনে সেট করা থাকে), এনপিএম ডিভডিপেন্সিগুলিতে তালিকাভুক্ত মডিউলগুলি ইনস্টল করবে না।

দেখুন: https://docs.npmjs.com/cli/install


8

আপনি কেবলমাত্র উন্নয়ন উদ্দেশ্যে ব্যবহার করতে চান এমন জিনিসগুলি সহ আপনি সাধারণত উত্পাদন প্যাকেজটি ব্লোট করতে চান না।

ইউনিট টেস্টের ফ্রেমওয়ার্কগুলির মতো প্যাকেজগুলি পৃথক করতে --save-dev(বা -D) বিকল্পটি ব্যবহার করুন ( ঠাট্টা, জুঁই, মোচা, চই ইত্যাদি)

আপনার অ্যাপ্লিকেশনটির উত্পাদনের জন্য প্রয়োজনীয় অন্য যে কোনও প্যাকেজগুলি --save(বা -S) ব্যবহার করে ইনস্টল করা উচিত ।

npm install --save lodash       //prod dependency
npm install -S moment           // "       "
npm install -S opentracing      // "       "

npm install -D jest                 //dev only dependency
npm install --save-dev typescript   //dev only dependency

আপনি যদি package.jsonফাইলটি খোলেন তবে আপনি দুটি পৃথক বিভাগের অধীনে তালিকাভুক্ত এই এন্ট্রিগুলি দেখতে পাবেন:

"dependencies": {
  "lodash": "4.x",
  "moment": "2.x",
  "opentracing": "^0.14.1"
},

"devDependencies": {
    "jest": "22.x",
    "typescript": "^2.8.3"
},

5

--save-dev অ্যাপ্লিকেশন বিকাশে ব্যবহৃত মডিউলগুলির জন্য ব্যবহৃত হয়, উত্পাদন en র্ষা চলাকালীন প্রয়োজন হয় না - সেভটি প্যাকেজ.জসনে যুক্ত করার জন্য ব্যবহৃত হয় এবং অ্যাপ্লিকেশনটি চালানোর জন্য এটি প্রয়োজনীয় হয়।

উদাহরণ: এক্সপ্রেস, বডি-পার্সার, লোডাশ, হেলমেট, মাইএসকিএল এগুলি অ্যাপ্লিকেশন ব্যবহার চলাকালীন ব্যবহৃত হয় - নির্ভরতা রাখার জন্য সেচ যখন মোচা, ইস্তানবুল, চই, সোনারকুব-স্ক্যানার সমস্ত বিকাশ চলাকালীন ব্যবহৃত হয়, সুতরাং সেগুলি ডিভাইসে রাখুন নির্ভরতা।

এনপিএম লিঙ্ক বা এনএমপি ইনস্টল আপনার প্রকল্প ফোল্ডারে নির্ভরতা মডিউলগুলির সাথে ডেভ-নির্ভরতা মডিউলগুলিও ইনস্টল করবে


3

এখানে সমস্ত ব্যাখ্যা দুর্দান্ত, তবে খুব গুরুত্বপূর্ণ বিষয়টির অভাব রয়েছে: আপনি কেবল উত্পাদন নির্ভরতা কীভাবে ইনস্টল করবেন? (উন্নয়নের উপর নির্ভরশীলতা ছাড়াই)। আমরা আলাদা dependenciesথেকে devDependenciesব্যবহার করে --saveবা --save-dev। আমরা ব্যবহার করি সমস্ত ইনস্টল করতে:

npm i

কেবলমাত্র উত্পাদন প্যাকেজ ইনস্টল করতে আমাদের ব্যবহার করা উচিত:

npm i --only=production

0

আমি আমার ধারণা হিসাবে কিছু যুক্ত করতে চাই

আমি মনে করি যে কেউ নিজের কোড ব্যবহার না করে নিজের কোড ব্যবহার করলে সমস্ত ভিন্নতা উপস্থিত হবে

উদাহরণস্বরূপ, আপনি একটি HTTP লাইব্রেরি লিখেন node's request

আপনার গ্রন্থাগারে,

আপনি স্ট্রিং এবং অবজেক্ট পরিচালনা করার জন্য লোডাশ ব্যবহার করেছেন, লড্যাশ ছাড়াই আপনার কোডগুলি চলতে পারে না

যদি কেউ তার কোডগুলির অংশ হিসাবে আপনার এইচটিটিপি লাইব্রেরি ব্যবহার করে। আপনার কোডগুলি তার সাথে সংকলিত হবে।

আপনার কোডগুলির লড্যাশ দরকার, তাই আপনাকে সংকলনdependencies করতে হবে


আপনি যদি এমন একটি প্রকল্প লিখেন monaco-editorযা কোনও ওয়েব সম্পাদক,

আপনার সমস্ত কোড এবং আপনার product env libraryওয়েবপ্যাকটি ব্যবহার করে বান্ডিল রয়েছে, বিল্ড সম্পূর্ণ হওয়ার পরে কেবল একটি amonaco-min.js

কিনা সুতরাং কেউ যদি না --saveবা --save-dependencies, শুধুমাত্র সে প্রয়োজনmonaco-min.js

সারসংক্ষেপ:

  1. যদি কেউ আপনার কোডগুলি সংকলন করতে চান (লাইব্রেরি হিসাবে ব্যবহার করুন), lodashযা আপনার কোডগুলি ব্যবহার করে putdependencies

  2. যদি কেউ আপনার কোডগুলিতে আরও বৈশিষ্ট্য যুক্ত করতে চান তবে তার প্রয়োজন হয় unit testএবং compilerএগুলি এতে রেখে দেওয়া হয়dev-dependencies


0

দুষ্ট শীতল জিনিসগুলি করতে লোকেরা উত্পাদনে এনপিএম ব্যবহার করে, নোড.জেএস এর উদাহরণ, সুতরাং আপনি চান না যে আপনার সমস্ত দেব সরঞ্জাম চালিত হোক।

আপনি যদি নিজের সার্ভারে লাগানোর জন্য বিল্ড ফাইলগুলি তৈরি করতে গল্প (বা অনুরূপ) ব্যবহার করেন তবে তা আসলে কোনও বিষয় নয়।

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