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


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.