संगीतकार का उपयोग करके लारवेल से पैकेज कैसे निकालें?


402

लारवेल 4 से पैकेज निकालने का सही तरीका क्या है? जब तक मैंने कोशिश की है:

  1. घोषणा को composer.json"आवश्यकता" खंड से निकालें )
  2. किसी भी क्लास एलियासेस को हटा दें app.php
  3. मेरे कोड से पैकेज के किसी भी संदर्भ को निकालें :-)
  4. Daud composer update
  5. Daud composer dump-autoload

काम नहीं कर रहा! क्या मैं कुछ भूल रहा हूँ?

कुछ संकुल अपने विन्यास को "कारीगर विन्यास: प्रकाशित ..." के माध्यम से प्रकाशित करते हैं। क्या उन्हें "अप्रकाशित" करने का कोई तरीका है?

जवाबों:


594

निम्न आदेश को चलाने से विक्रेता (या जहाँ भी आप पैकेज स्थापित करते हैं), composer.json और composer.lock से पैकेज निकाल देंगे। विक्रेता / पैकेज को उचित रूप से बदलें।

composer remove vendor/package

जाहिर है आपको अपने ऐप के भीतर उस पैकेज के संदर्भ हटाने होंगे।

मैं वर्तमान में संगीतकार के निम्नलिखित संस्करण चला रहा हूं:

Composer version 1.0-dev (7b13507dd4d3b93578af7d83fbf8be0ca686f4b5) 2014-12-11 21:52:29

13
और फिर composer updateविक्रेता से विक्रेता / पैकेज फ़ोल्डर को हटाने के लिए चलाएं
Zeshan

11
@ZeshanKhattak संगीतकार अपडेट सभी निर्भरता को अपडेट करेगा। यह परियोजना को अस्थिर स्थिति में छोड़ देता है। जब तक आप निर्भरता अपडेट नहीं करना चाहते, तब तक कंपोज़र अपडेट का उपयोग न करें
zarax

11
composer remove packagename, यह composer.json से संकुल हटाने का अद्यतन करता है और विक्रेता से संकुल फ़ोल्डर निकालता है ... लार्वा - 5.4.24, संगीतकार - 1.4.2।

ऐसा लगता है कि कंपोजर चलने के बाद स्वचालित रूप से लापता पैकेज स्थापित कर रहा है composer remove <package>। वैसे भी उससे बचने के लिए? संस्करण 1.7.2 का उपयोग करना।
ओलले हर्स्टेड

यह होना चाहिए: कंपोज़र निकालें package_name इसके बजाय: कंपोज़र निकालें विक्रेता / पैकेज वहाँ विक्रेता की कोई आवश्यकता नहीं है क्योंकि लारवल स्वचालित रूप से संकुल के लिए विक्रेता निर्देशिका में जाँच करता है।
प्रशांत

171

मिल गया काम ... लारवेल से एक पैकेज को हटाने के कदम हैं:

  1. कंपोज़र से घोषणा हटाएं। json ("आवश्यकता" अनुभाग में)
  2. सेवा प्रदाता को "एप्लिकेशन / कॉन्‍फ़िगर / ऐप.php" से हटाएं ("प्रदाताओं" सरणी में संदर्भ)
  3. "एप्लिकेशन / कॉन्‍फ़िगर / app.php" से किसी भी क्लास अलायस को निकालें
  4. अपने कोड से पैकेज के किसी भी संदर्भ को निकालें :-)
  5. "संगीतकार अपडेट विक्रेता / पैकेज-नाम" चलाएं। यह "विक्रेता" फ़ोल्डर से पैकेज फ़ोल्डर को हटा देगा और संगीतकार ऑटोलोडिंग मानचित्र का पुनर्निर्माण करेगा।
  6. मैन्युअल रूप से प्रकाशित फ़ाइलों को हटा दें (zwacky द्वारा टिप्पणी पढ़ें)

यह "विक्रेता" फ़ोल्डर से पैकेज फ़ोल्डर को हटा देगा


2
हालांकि अप्रकाशित संपत्ति / कॉन्फ़िगरेशन वास्तव में एक स्वचालित चीज नहीं है। मैं आमतौर पर मैन्युअल रूप से विक्रेता / पैकेज फ़ोल्डर को कॉन्फ़िगर / या सार्वजनिक / में हटा देता हूं।
zwacky

7
अब लार्वा को "आसान पैकेज <पैकेज-नेम>" जैसे कुछ को आसान बनाने के लिए आना चाहिए।
चंदन गुप्ता

19
इस समाधान के साथ एक समस्या यह है कि यह अन्य सभी पैकेजों को अपडेट करेगा, जो आप नहीं चाहते।
21

3
(1) और (5) को रनिंग से बदला जा सकता है composer remove vendor/package, मुझे लगता है।
JCarlosR

धन्यवाद, यह निर्देश काम नहीं करने के लिए उपयोगी था इगैस्टर / लार्वा-थीम पैकेज
Jjsg08

59

निम्नलिखित आदेश चल रहा है

composer remove Vendor/Package Name

बस इतना ही। संगीतकार अपडेट की आवश्यकता नहीं है। विक्रेता / पैकेज का नाम सिर्फ निर्देशिका है जैसा कि पहले स्थापित किया गया था


1
मैंने यह किया है और यह कहता है कि इसकी अब संगीतकार में आवश्यकता नहीं है। ऐसा इसलिए 'अनदेखा' कर रहा है
स्वीट चिली फिल्ली

1
composer remove <packageName>मुझे लगता है कि यह किसी भी पैकेज को हटाने के लिए एकदम सही है। के बारे में भूल जाओ Vendor:) उदाहरण के लिए,composer remove laravel/tinker
शम्सुल हुदा

43

आम तौर पर composer removeइस तरह इस्तेमाल किया जाता है:

$ composer remove vendor/package

लेकिन अगर कंपोजर पैकेज हटा दिया जाता है और कैश को साफ नहीं किया जाता है तो आप इसे साफ नहीं कर सकते, जब आप ऐसा प्रयास करते हैं

php artisan config:clear

आपको एक त्रुटि मिल सकती है In ProviderRepository.php line 208:

क्लास 'लैराकास्ट्स' फ़्लैश \ फ़्लैश \ फ्लैश सर्विसपाइडर नहीं मिला

यह एक मृत अंत है, जब तक आप फ़ाइलों को हटाने नहीं जाते हैं

$rm bootstrap/cache/config.php

और यह Laravel 5.6 मैं बात कर रहा हूं, किसी तरह का बहुत पुराना सामान नहीं।

यह आमतौर पर स्वचालित तैनाती पर होता है, जब आप पुराने कैश के शीर्ष पर एक नई रिलीज़ की फ़ाइलों की प्रतिलिपि बनाते हैं। भले ही आपने कॉपी करने से पहले कैशे क्लियर किया हो। आप पुराने कैश और नए कंपोजर के साथ आए। json।


2
मुझे लगता है कि यह 5.7 में तय किया गया है
येवगेनी अफनासयेव

1
5.6 के साथ, मेरा बूटस्ट्रैप / कैश खाली था। मैं भूल गया था कि मैं कैश पथ (config / cache.php) को बदल दूँगा! नए कैश फ़ोल्डर में फ़ाइलों को हटाने से समस्या ठीक हो गई!
ऐनी

2
@YevgeniyAfanasyev यह 5.7 में भी तय नहीं है
पांचाल

2
मैंने लगभग 3 घंटे अपने बालों को इस पर खींचे। मैंने सोचा कि config:clearइसे ठीक कर दूंगा।
श्रेयांश पांचाल

34

आप टर्मिनल में follwing कमांड टाइप करके किसी भी पैकेज को हटा सकते हैं, और पैकेज को स्थापित करने के समय दिए गए प्रदाताओं और उपनामों को हटा सकते हैं, यदि कोई हो और संगीतकार को अपडेट करें,

composer remove vendor/your_package_name
composer update

1
कभी-कभी नई निर्भरताओं को अपडेट करने के लिए, आपको संगीतकार को अपडेट करना होगा। मुझे लगता है कि इसे चलाने में कोई बुराई नहीं है।
शाहरुख अनवर

18

आप नीचे दिए गए दो तरीकों में से किसी एक को कर सकते हैं:

  1. नीचे दिए गए आदेश को चलाना (अपने अन्य पैकेजों को अपडेट किए बिना अपने पैकेज को हटाने के लिए सबसे अनुशंसित तरीका)

    $ composer remove vendor/package

  2. अपनी कंपोज़र.जॉसन फ़ाइल पर जाएं और फिर नीचे कमांड को चलाएं जैसे यह आपके पैकेज को हटा देगा (लेकिन यह आपके अन्य पैकेजों को भी अपडेट करेगा)

    $ composer update


17

कंपोजर.जॉन घोषणा से पैकेज हटाने से पहले, कृपया कैश निकालें

php artisan cache:clear  
php artisan config:clear 

यदि आप कैश निकालना भूल जाते हैं और आपको क्लास नहीं मिलती है, तो कृपया पैकेज और क्लियर कैश को फिर से इंस्टॉल करें और फिर से हटा दें।


16

सबसे सरल और सबसे आसान तरीका है

वाक्य - विन्यास:

composer remove <package>

उदाहरण:

composer remove laravel/tinker

15

यदि आपको अभी भी उपरोक्त सभी चरणों के साथ त्रुटि हो रही है, तो अपनी परियोजनाओं पर जाएं bootstrap->cache->config.phpऔर प्रदाता और उपनाम प्रविष्टियों को मैन्युअल रूप से कैश सरणी से हटा दें।


इससे मुझे मदद मिली।
पीटर ग्रिफिन

1
कुछ पैकेज विक्रेता पैकेज बनाने के लिए सभी आवश्यकताओं को पूरा नहीं करते हैं। उस कारण से, ये विक्रेता composer remove vendor/packageकैश प्रविष्टियों को ठीक से निकालने में असमर्थ हैं। तो, @ रामजीत एप यहां बिल्कुल सही है।
सम्राट खान

12

**

उपयोग "संगीतकार निकालें विक्रेता / पैकेज"

** यह उदाहरण है: स्थापित / Pakage जोड़ें

composer require firebear/importexportfree

Uninsall / निकालें

composer remove firebear/importexportfree

हटाने के बाद अंतिम:

php -f bin/magento setup:upgrade

php bin/magento setup:static-content:deploy f

php bin/magento indexer:reindex 

php -f bin/magento cache:clean

9

संगीतकार कमांड का उपयोग करके एक पैकेज को हटाने के लिए

composer remove <package>

कंपोजर कमांड का उपयोग करके एक पैकेज स्थापित करने के लिए

composer require <package>

उन सभी पैकेजों को स्थापित करने के लिए जो कंपोज़र.जॉन में उल्लिखित हैं

composer install

पैकेज अपडेट करने के लिए

composer update

मैंने लारवेल परियोजना के लिए इनका उपयोग किया


9

आप टर्मिनल में निम्नलिखित कमांड टाइप करके किसी भी पैकेज को हटा सकते हैं, और पैकेज को स्थापित करने के समय दिए गए प्रदाताओं और उपनामों को हटा दें और संगीतकार को अपडेट करें

composer remove <package_name>
composer update

8

यदि दिए गए उत्तर अभी भी आपको हटाने में मदद नहीं करते हैं, तो यह कोशिश करें:

  • मैन्युअल रूप से लाइन को अंदर requireसे हटा देंcomposer.json

  • Daud composer update


3

हम एक महान समाधान लेकर आए हैं। यह समाधान व्यावहारिक रूप से Laravel 6 में किया जाता है। यदि आप अपने Laravel प्रोजेक्ट से किसी भी पैकेज को निकालना चाहते हैं तो आप नीचे दिए गए चरणों का पालन करके आसानी से पैकेज को निकाल सकते हैं:

चरण 1: आपको पैकेज का नाम पता होना चाहिए जिसे आप हटाना चाहते हैं। अगर आपको पूरा पैकेज नाम नहीं पता है, तो आप अपने प्रोजेक्ट फ़ोल्डर को खोल सकते हैं composer.jsonऔर एक सरणी की आवश्यकता के लिए फ़ाइल और चेक नाम पर जा सकते हैं

"require": {
        "php": "^7.2",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "^6.2",
        "laravel/passport": "^8.3",
        "laravel/tinker": "^2.0"
    },

मान लीजिए, यहां मैं "फिडेल्पर / प्रॉक्सी" पैकेज को हटाने जा रहा हूं।

चरण 2 : अपने प्रोजेक्ट रूट फ़ोल्डर डायरेक्टरी के साथ कमांड प्रॉम्प्ट खोलें चरण 3: सबसे पहले सभी कमांडों का अनुसरण करके सभी कैश को साफ़ करें। एक-एक करके कमांड चलाएं।यहां छवि विवरण दर्ज करें

php artisan cache:clear  
php artisan config:clear 

चरण 4: अब पैकेज को हटाने के लिए निम्नलिखित कमांड लिखें। यहां आपको मेरे उदाहरण पैकेज के बजाय अपना पैकेज नाम बदलना होगा।

composer remove fideloper/proxy

अब, कुछ सेकंड के लिए प्रतीक्षा करें जो आपका पैकेज निकाल रहा है।


2
या composer remove laravel/telescope --devअगर यह देव पैकेज है
vinsa

3

के साथ पैकेज निकालें

composer remove vendorname/packagename

आप कंपोज़र से हटा सकते हैं

या आप composer.jsonफ़ाइल से पैकेज का नाम हटा सकते हैं और composer updateअपनी परियोजना निर्देशिका के भीतर से चला सकते हैं। मुझे उम्मीद है यह मदद करेगा।

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