संगीतकार से अप्रयुक्त निर्भरता कैसे निकालें?


209

मैंने संगीतकार के साथ एक पैकेज स्थापित किया, और इसने निर्भरता के रूप में कई अन्य पैकेज स्थापित किए।

अब मैंने मुख्य पैकेज को अनइंस्टॉल कर दिया composer remove packageauthor/packagename, लेकिन सभी पुरानी निर्भरताएं दूर नहीं की गईं। मुझे उम्मीद थी कि संगीतकार सफाई करेंगे और केवल उन पैकेजों को रखेंगे जो composer.jsonउनके और उनकी निर्भरता के अनुसार आवश्यक हैं ।

मैं संगीतकार को सभी अप्रयुक्त पैकेजों को साफ करने और हटाने के लिए कैसे मजबूर कर सकता हूं?

जवाबों:


375

ऐसा करने का सही तरीका है:

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

मुझे यह स्वीकार करना चाहिए कि यहाँ झंडा बहुत स्पष्ट नहीं है कि वह क्या करेगा।

अपडेट करें

composer remove jenssegers/mongodb

के रूप में v1.0.0-beta2 --update-with-dependencies डिफ़ॉल्ट है और अब आवश्यक है।


Github पर इस मुद्दे को शुरू करने के लिए @Yehosef को धन्यवाद, जहां एक समाधान प्रदान किया गया था, लेकिन जब से उसने अपना जवाब अपडेट नहीं किया, मैंने हर सुविधा के लिए अपना खुद का लिखने का फैसला किया
डेनिस पशेनोव

धन्यवाद, मुझे उनकी चर्चा का अंत नहीं मिला।
लॉरेंज मेयर

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
Pathros

4
पैकेज हटाने के बाद सफाई के बारे में कैसे? - यहीं @LorenzMeyer उत्तर जाता है: composer updateThumbs to this answer to @LorenzMeyer
एलन लिनाटोक

29

वास्तव में, यह बहुत आसान है।

composer update

आपके लिए यह सब करेगा, लेकिन यह अन्य पैकेजों को भी अपडेट करेगा।

दूसरों को अपडेट किए बिना एक पैकेज निकालने के लिए, उदाहरण के लिए, उस पैकेज को निर्दिष्ट करें:

composer update monolog/monolog

monolog/monologपैकेज को हटा देगा ।

फिर भी, कुछ खाली फ़ोल्डर या फाइलें रह सकती हैं जिन्हें अपने आप हटाया नहीं जा सकता है, और जिन्हें मैन्युअल रूप से हटाया जाना है।


8
इसके बारे में दुर्भाग्यपूर्ण हिस्सा यह है कि यह आपको पुराने संस्करणों को हटाने के बजाय अपने पैकेजों को अपडेट करने के लिए मजबूर करता है। जैसे, अगर मेरे पास दो पैकेज AAA / aaa ~ 1 और संस्करण BBB / bbb ~ 2 है और मैं वर्तमान में AAA / aaa के संस्करण 1.0 में हूं और उन्होंने 1.1 जारी किया है, तो जब मैं BBB / bbb हटाता हूं तो मैं स्वतः अपडेट हो जाता हूं (जो नहीं हो सकता) मैं जो करने का इरादा कर रहा था ..)
येहोसफ

तुम सही हो। यदि आपके पास एक बेहतर समाधान है, तो वापस आएं और उत्तर के रूप में पोस्ट करें।
लॉरेंज मेयर

3
मैं अभी तक नहीं - मैं सिर्फ दूसरों के लिए इस दृष्टिकोण का एक बिंदु की ओर इशारा करना चाहता हूँ।
येहोसफ

यह वास्तव में संगीतकार स्थापित करने पर एक ध्वज होना चाहिए .. कुछ इस तरह--prune
येहोसफ

1
यदि आप इस विचार को पसंद करते हैं, तो आप इस पर वोट कर सकते हैं - github.com/composer/composer/issues/3751
Yehosef

20

निम्नलिखित कमांड पूरी तरह से ऐसा ही करेंगे

rm -rf vendor

composer install 

2
यह सबसे साफ विकल्प लगता है। विक्रेताओं निर्देशिका को हटा दें और संगीतकार को सब कुछ ताजा करने दें।
मचाविटी

4
यह
npm

composer installस्वचालित रूप से अप्रयुक्त पैकेजों को हटा देगा
Yidir

10

बस चलाएं composer install- यह आपकी vendorनिर्देशिका को composer.lockफ़ाइल में निर्भरता को प्रतिबिंबित करेगा ।

दूसरे शब्दों में - यह किसी भी विक्रेता को हटा देगा जो गायब है composer.lock

कृपया इसे चलाने से पहले संगीतकार को अपडेट करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.