এনপিএম ইনস্টল করে - সেভ ফ্ল্যাগগুলি কী করে


102

আমি উভয় দিয়ে একটি প্যাকেজ ইনস্টল করার জন্য নির্দেশাবলী দেখতে পাচ্ছি

npm install <package_name>

বা

npm install <package_name> --save

বা

npm install <package_name> --save-dev

এই বিকল্পগুলির মধ্যে পার্থক্য কী?

উত্তর:


88

npm install <package_name> --saveপ্যাকেজটি ইনস্টল করে এবং আপনার প্যাকেজ.জসনে নির্ভরতা আপডেট করে। যেহেতু এই প্রশ্নটি জিজ্ঞাসা করা হয়েছিল এনপিএম-তে পরিবর্তন হয়েছিল, --saveএটি ডিফল্ট বিকল্প হিসাবে পরিণত হয়েছে, সুতরাং --saveনির্ভরতা আপডেট করার জন্য আপনাকে ব্যবহার করার দরকার নেই ।

npm install <package_name> --no_save প্যাকেজটি ইনস্টল করে তবে প্যাকেজ.জসনে উল্লিখিত নির্ভরতাগুলি আপডেট করে না।

npm install <package_name> ---save-devdevDependenciesআপনার প্যাকেজ আপডেট । এগুলি কেবল স্থানীয় পরীক্ষা এবং উন্নয়নের জন্য ব্যবহৃত হয়।

আপনি https://docs.npmjs.com/getting-started/using-a-package.json এ আরও পড়তে পারেন ।


4
এটি "এনপিএম - সেভ পতাকা" এ আমার গুগল অনুসন্ধানের শীর্ষ উত্তর ছিল। দয়া করে এটি সঠিক তথ্যের সাথে আপডেট করার বিষয়ে বিবেচনা করুন, অর্থাত - সেভ এখন ডিফল্ট এবং প্যাকেজ.জেসনে নির্ভরতার তালিকা আপডেট না করার জন্য
জোনাস

52

এনপিএম ইনস্টল করতে 3 টি একচেটিয়া, alচ্ছিক পতাকা লাগে যা আপনার মূল প্যাকেজ.জসনে প্যাকেজ সংস্করণটি সংরক্ষণ বা আপডেট করে:

-S, --save: প্যাকেজ আপনার নির্ভরতা উপস্থিত হবে।

-D, --save-dev: প্যাকেজটি আপনার ডিভিনিডেন্সে উপস্থিত হবে।

-O, --save-optional: প্যাকেজটি আপনার Dচ্ছিক নির্ভরতাগুলিতে উপস্থিত হবে।

আপনার প্যাকেজ.জসনের উপর নির্ভরতা বাঁচাতে উপরের যে কোনও বিকল্প ব্যবহার করার সময়, একটি অতিরিক্ত, alচ্ছিক পতাকা রয়েছে:

-E, --save-exact: সংরক্ষিত নির্ভরতাগুলি এনএমপি'র ডিফল্ট সেমভার রেঞ্জ অপারেটর ব্যবহার না করে সঠিক সংস্করণ দিয়ে কনফিগার করা হবে। তদুপরি, আপনার যদি একটি এনপিএম-সঙ্কিঙ্ক্র্যাপ.জসন থাকে তবে এটিও আপডেট হবে।

<scope>alচ্ছিক। প্যাকেজটি নির্দিষ্ট ক্ষেত্রের সাথে সম্পর্কিত রেজিস্ট্রি থেকে ডাউনলোড করা হবে। যদি কোনও রেজিস্ট্রি প্রদত্ত সুযোগের সাথে যুক্ত না হয় তবে ডিফল্ট রেজিস্ট্রি ধরে নেওয়া হয়। এনপিএম-স্কোপ দেখুন।

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

উদাহরণ:

npm install sax --save
npm install githubname/reponame
npm install @myorg/privatepackage
npm install node-tap --save-dev
npm install dtrace-provider --save-optional
npm install readable-stream --save --save-exact

দ্রষ্টব্য: যদি <name>বর্তমান ওয়ার্কিং ডিরেক্টরিতে কোনও ফাইল বা ফোল্ডার নাম দেওয়া থাকে , তবে এটি ইনস্টল করার চেষ্টা করবে এবং প্যাকেজটি বৈধ না হলে কেবল নাম অনুসারে আনার চেষ্টা করবে।

(অফিসিয়াল ডক্স থেকে) https://docs.npmjs.com/cli/install


52
যদিও --saveবিকল্প এখনও কাজে মনে হচ্ছে এটি আর প্রয়োজন বোধ করা হয় - প্যাকেজগুলি এখন নির্ভরতা এ সঞ্চিত হয় ডিফল্টরূপে । যুক্তিটি এখন বিপরীত - আপনি যদি আপনার প্যাকেজটি সংরক্ষণ করতে না চান তবে আপনাকে উল্লেখ করতে হবে--no-save
Coruscate5

ধন্যবাদ, @ Coruscate5 আমার প্রশ্নের সঠিক উত্তর দিয়েছে।
কন

28

--saveপতাকা আর একটি উদ্দেশ্য কাজ করে।

পূর্বে, অন্যান্য উত্তরগুলির হিসাবে উল্লেখ করা হয়েছে, --saveপতাকাটি প্রকল্পের package.jsonফাইলে নির্ভরতা আপডেট করবে তবে npm installএখন ডিফল্টরূপে এই কার্যকারিতাটি অন্তর্ভুক্ত রয়েছে।

এই মুহুর্তে আপনি যদি npm installনির্ভরতা সংরক্ষণ থেকে বাঁচতে চান তবে আপনাকে --no-saveপতাকাটি ব্যবহার করতে হবে ।

Coruscate5 তাদের মন্তব্যে এটি উল্লেখ করার জন্য ধন্যবাদ ।

এনপিএম-ইনস্টল ডকুমেন্টেশনে আরও তথ্য :

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

-পি, - সেভ-প্রোড: আপনার নির্ভরতাগুলিতে প্যাকেজ উপস্থিত হবে। -D বা -O উপস্থিত না থাকলে এটি ডিফল্ট।

-ড, - সেভ-দেব: প্যাকেজটি আপনার ডেভিনির্ভরতায় উপস্থিত হবে।

-ও, - সংরক্ষণ-alচ্ছিক: প্যাকেজটি আপনার optionচ্ছিক নির্ভরতাতে উপস্থিত হবে।

--no-save: নির্ভরতাগুলিতে সাশ্রয় রোধ করে।

আপনার প্যাকেজ.জসনের উপর নির্ভরতা বাঁচাতে উপরের যে কোনও বিকল্প ব্যবহার করার সময়, দুটি অতিরিক্ত, alচ্ছিক পতাকা রয়েছে:

-E, - সেভ-হুবহু: সংরক্ষিত নির্ভরতাগুলি এনপিএমের ডিফল্ট সেমভার রেঞ্জ অপারেটরটি ব্যবহার না করে সঠিক সংস্করণ দিয়ে কনফিগার করা হবে।

-বি, - সেভ-বান্ডিল: সংরক্ষিত নির্ভরতাগুলিও আপনার বান্ডেলডপেনডেন্সি তালিকায় যুক্ত হবে।


বর্তমান পরিস্থিতিটি আবরণে আপডেট করা উত্তরের জন্য ধন্যবাদ
ডারকর্ড

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