সুরকার থেকে অব্যবহৃত নির্ভরতা কীভাবে সরিয়ে নেওয়া যায়?


209

আমি সুরকার সহ একটি প্যাকেজ ইনস্টল করেছি এবং এটি নির্ভরতা হিসাবে অন্যান্য অনেক প্যাকেজ ইনস্টল করেছে।

এখন আমি এর সাথে মূল প্যাকেজটি আনইনস্টল করেছি composer remove packageauthor/packagename, তবে পুরানো সমস্ত নির্ভরতা অপসারণ করা হয়নি। আমি সুরকার আশা করেছিলাম যে কেবল প্যাকেজগুলি composer.jsonএবং তাদের নির্ভরতা অনুসারে প্রয়োজনীয় জিনিসগুলি পরিষ্কার করা হবে keep

আমি কীভাবে সুরকারকে সমস্ত অব্যবহৃত প্যাকেজগুলি পরিষ্কার এবং অপসারণ করতে বাধ্য করতে পারি?

উত্তর:


375

এটি করার সঠিক উপায় হ'ল:

composer remove jenssegers/mongodb --update-with-dependencies

আমি অবশ্যই পতাকাটি এখানে স্বীকার করব যে এটি কী করবে তা পুরোপুরি সুস্পষ্ট নয়।

হালনাগাদ

composer remove jenssegers/mongodb

V1.0.0-beta2 হিসাবে --update-with-dependenciesডিফল্ট এবং আর প্রয়োজন হয় না।


গিথুব যেখানে সমস্যা সমাধানের ব্যবস্থা করা হয়েছিল সেখানে ইস্যুটি শুরু করার জন্য @ ইয়েহোসেফকে ধন্যবাদ জানাই, তবে তিনি তার উত্তর আপডেট না করায় আমি সিদ্ধান্ত নিয়েছি প্রত্যেকের সুবিধার্থে নিজের লেখার জন্য
ডেনিস সেশেনভ

ধন্যবাদ, আমি তাদের আলোচনার শেষ পাইনি।
লরেঞ্জ মেয়ার

3
একটি বিষয় লক্ষণীয়: আপনি যদি ইতিমধ্যে তা না করে থাকেন composer remove …তবে --update-with-dependenciesআপনি এই প্রশ্নটি composer removeনা ফেলে অবধি ভুলে গেছেন - পরবর্তী কলগুলি সমস্ত নির্ভরতা হারাবে না। আপনাকে ফেরত দিতে হবে, সুরকার install, তারপরেcomposer remove --update-with-dependencies
মাইক জি

এখন আমি নিম্নলিখিত বার্তাটি পেয়েছি:You are using the deprecated option "update-with-dependencies". This is now default behaviour. The --no-update-with-dependencies option can be used to remove a package without its dependencies
পাঠ্রস

4
প্যাকেজ অপসারণের পরে ক্লিনআপ সম্পর্কে কীভাবে? - সেখানেই লরেনজমিয়ারের উত্তরটি এসেছে: composer update@ লরেনজমিয়ারের এই উত্তরটি পর্যন্ত থাম্বস্
অ্যালেন লিন্যাটোক

29

আসলে এটি খুব সহজ।

composer update

এটি আপনার জন্য সমস্ত কিছু করবে, তবে এটি অন্যান্য প্যাকেজগুলিও আপডেট করবে।

অন্যকে আপডেট না করে কোনও প্যাকেজ অপসারণ করতে, কমান্ডের মধ্যে সেই প্যাকেজটি নির্দিষ্ট করুন:

composer update monolog/monolog

monolog/monologপ্যাকেজ অপসারণ করা হবে ।

তবুও, কিছু খালি ফোল্ডার বা ফাইলগুলি থাকতে পারে যা স্বয়ংক্রিয়ভাবে সরানো যায় না এবং সেগুলি ম্যানুয়ালি মুছে ফেলা উচিত।


8
এটি সম্পর্কে দুর্ভাগ্যজনক অংশটি হ'ল এটি আপনাকে পুরানো সংস্করণগুলি সরিয়ে না দেওয়ার পরিবর্তে আপনার প্যাকেজগুলি আপডেট করতে বাধ্য করে। উদাহরণস্বরূপ, আমার কাছে যদি দুটি প্যাকেজ এএএ / এএএএ ~ 1 এবং সংস্করণ বিবিবি / বিবিবি ~ 2 রয়েছে এবং আমি বর্তমানে এএএ / এএএর সংস্করণ 1.0 এ রয়েছি এবং তারা 1.1 প্রকাশ করেছে, তখন আমি বিবিবি / বিবিবি মুছলে আমি স্বয়ংক্রিয়ভাবে আপডেট হয়ে যাই (যা নাও হতে পারে আমি যা করতে
উঠুন

তুমি ঠিক. আপনার আরও ভাল সমাধান থাকলে, ফিরে এসে উত্তর হিসাবে পোস্ট করুন।
লরেঞ্জ মেয়ার

3
আমি এখনও করি না - আমি অন্যদের জন্য এই পদ্ধতির একটি ক্ষতির বিষয়টি কেবল উল্লেখ করতে চাই।
ইয়েসোফ

এটা সত্যিই সুরকার উপর একটি পতাকা ইনস্টল .. কিছু কেমন হওয়া উচিত--prune
Yehosef

1
যদি আপনি ধারণা পছন্দ আপনি এটি ভোট দিতে পারেন - github.com/composer/composer/issues/3751
Yehosef

20

নিম্নলিখিত আদেশগুলি নিখুঁতভাবে একই কাজ করবে

rm -rf vendor

composer install 

2
এটি সবচেয়ে পরিষ্কার বিকল্প বলে মনে হচ্ছে। বিক্রেতাদের ডিরেক্টরি মুছুন এবং সুরকারকে সবকিছু নতুন করে টানুন।
মাচাভিটি

4
এটি এনপিএম "আমার দিন বাঁচাও" শৈলী;)
r34

composer installঅব্যবহৃত প্যাকেজগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে
Yidir

10

কেবল চালান composer install- এটি আপনার vendorডিরেক্টরিটি composer.lockফাইলে নির্ভরতা প্রতিফলিত করবে ।

অন্য কথায় - এটি যে কোনও বিক্রেতার অনুপস্থিত তা মুছে ফেলবে composer.lock

এটি চালানোর আগে দয়া করে সুরকারকে আপডেট করুন।

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