এনপিএম আনইনস্টল ব্যবহার করার সময় প্যাকেজ.জসন থেকে স্বয়ংক্রিয়ভাবে নির্ভরতা সরিয়ে ফেলুন


84

npm initআমি এটি ব্যবহার করে আমার প্যাকেজ.জসনে নির্ভরতা যুক্ত করার পরে :

npm install package --save

এবং বলুন, আমি uninstallপ্যাকেজটিতে যেতে চাই এবং এটি করে আমি তা করি:

npm uninstall package

তবে আমি চাই যে আমার প্যাকেজ.জসনটি নিজেও ফাইলটিতে গিয়ে line লাইনটি মুছে না নিয়েও সেই অনুযায়ী আপডেট করা হোক।

এনপিএম ডক্স থেকে এটি বলে:

এটি কঠোরভাবে সংযোজনীয়, সুতরাং এটি করার কোনও সত্য কারণ ছাড়া এটি আপনার প্যাকেজ.জসন থেকে বিকল্পগুলি মুছবে না।

সুতরাং, আমি কেবল এটিই সম্ভব কিনা তা জানতে চেয়েছিলাম।


যেহেতু আমি যখনই (- সেভ) পতাকাটি দিয়ে ইনস্টল করি তখন আমার নির্ভরতা প্যাকেজ.জসনে স্বয়ংক্রিয়ভাবে যুক্ত হয়ে যায়, তাই আমি ভাবছিলাম যে আমি যখনই প্যাকেজটি আনইনস্টল করব তখনই প্যাকেজ.জসন থেকে নির্ভরতা অপসারণের কোনও উপায় আছে কি না।
shriek

উত্তর:


151

একই --saveপতাকা ব্যবহার করুন । আপনি যদি এর সাথে নির্ভরতা ইনস্টল করেন:

$> npm install grunt-cli --save

আপনি এটি ব্যবহার করে প্যাকেজ.জসন আপডেট হওয়ার সাথে এটি আনইনস্টল করতে পারেন:

$> npm uninstall grunt-cli --save

'সংরক্ষণ' পতাকাটি এনপিএমকে প্যাকেজ আপডেট করতে বলে।


4
আমি এমবার-ক্লিমে এনপিএম ব্যবহার করছি এবং এর --save-devপরিবর্তে আমাকে ব্যবহার করতে হয়েছিল --save
জেরি 3

4
যদি আপনি এটি --save-dev দিয়ে ইনস্টল করেন তবে আনইনস্টলটিও হ'ল - সেভ-ডেভ, যেহেতু - সেভটি dependenciesপ্যাকেজ.জসন ফাইলের বিভাগে সংরক্ষণ করে , --save-dev devDependenciesবিভাগে সংরক্ষণ করবে
মাইক ' পোম্যাক্স 'কামারম্যানস

7
আমি এই প্রশ্নটি পোস্ট করার পরে অনেক দূরে এসেছি এবং এখানে একটি সামান্য প্রো-টিপস রয়েছে। আপনি npm i <package_name> -Sআপনার dependenciesতালিকায় npm i <package_name> -Dযুক্ত করতে বা আপনার যুক্ত করতে ব্যবহার করতে পারেন dev-dependencies। একই পতাকাটি অপসারণের জন্য npm rm <package_name> -Sবাnpm rm <package_name> -D
shriek

4
তবে মনে রাখবেন যে এগুলি কেবল - সেভ এবং - সেভ-দেবের জন্য শর্টহ্যান্ড পতাকা সমতুল্য। npm helpসমস্ত পতাকা এবং তাদের শর্টহ্যান্ড সমতুল্যের জন্য দেখুন । (-এস বা - সেভ দিয়ে কিছু ইনস্টল করা হয়েছে এবং যে কোনও একটি ব্যবহার করে আনইনস্টল করা হবে, এনপিএম এগুলিকে আলাদা হিসাবে দেখবে না-এস-এর জন্য কেবল "কম টাইপিং")
মাইক 'পোম্যাক্স' কামারম্যানস

4
আপনি পুরুষদের মধ্যে একটি সাধু।
জন ভন নিউমান

0

আমার ক্ষেত্রে - সেভটি প্যাকেজ.জসন থেকে এন্ট্রি সাফ করেনি, আয়নিক-চেক দ্বারা প্রস্তাবিত কমান্ডটি আমি মনে করি যে যদি কোনও ত্রুটি প্যাকেজের সাথে আনইনস্টলটি বেরিয়ে আসে তবে প্যাকেজ.জসন আপডেট করা হবে না, সেই ক্ষেত্রে আপনার কাছে কেবল একটি বিকল্প রয়েছে প্যাকেজ.জসনকে ম্যানুয়ালি পরিবর্তন করতে, এটি ক্লান্তিকর তবে একমাত্র উপায় gu

হালনাগাদ

আপনি যখন এমন প্যাকেজ আনইনস্টল করেন যা অন্যান্য প্যাকেজের উপর নির্ভরশীলতা রয়েছে যা সক্রিয় রয়েছে তখন কোন ক্ষেত্রে আনইনস্টল ত্রুটি / সতর্কতা দিয়ে ব্যর্থ হতে পারে, নিরাপদ পদ্ধতিটি নিম্নলিখিত নির্ভরতা গ্রাফের মাধ্যমে নিশ্চিত হয় যে কোনও সরঞ্জাম উপলব্ধ রয়েছে কিনা তা নিশ্চিত নয়, এই ধরনের অপারেশনের অধীনে একটি কার্যকর সরঞ্জাম, সতর্কতা বার্তাগুলি যথেষ্ট বিভ্রান্তিকর যদিও "আপনার অবশ্যই পিয়ার নির্ভরতা ইনস্টল করতে হবে .." যখন আমরা কোনও প্যাকেজ আনইনস্টল করি তখন কোনও অর্থ হয় না


4
এটি প্রয়োজনীয় হবে না: অন্য কিছু নির্ভর করে কিনা তা নির্বিশেষে dependenciesতালিকার তালিকায় থাকলে এটি অপসারণ করা uninstall --save উচিত । এনপিএম বরং চতুর নির্ভরশীলতা ফ্ল্যাটিং ব্যবহার করে তাই আপনার নির্ভরতা তালিকায় যদি আপনার এক্স থাকে (স্পষ্টভাবে) এবং আপনি এক্স-সেভ আনইনস্টল করেন তবে তা সরিয়ে ফেলবে। তবে, একাধিক নির্ভরতা তালিকা আছে, এবং যে মনে রাখা --saveহিসাবে একই নয় --save-dev, --save-prodঅথবা --save-optional। এছাড়াও হ্যাঁ: যদি আপনার uninstallত্রুটির দিকে পরিচালিত করে তবে এনপিএম সেই ত্রুটি বন্ধ করে। এটি চালিয়ে যাওয়ার চেষ্টা করে না কারণ এটি আর নির্ভুলতার গ্যারান্টি দিতে পারে না।
মাইক 'পোম্যাক্স' কামারম্যানস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.