6

Как удалить пакет из Laravel с помощью PHP Composer?

1

Как правильно удалить пакет из Laravel с помощью PHP Composer?

Я попробовал следующее:

  1. Удалил запись из файла composer.json (в секции "require")
  2. Удалил любые псевдонимы классов из файла app.php
  3. Убрал все ссылки на пакет из моего кода :-)
  4. Выполнил команду composer update
  5. Выполнил команду composer dump-autoload

Ни один из этих шагов не сработал! Что я упустил?

5 ответ(ов)

11

Composer 1.x и 2.x

Запустив следующую команду, вы удалите пакет из директории vendor (или откуда вы устанавливаете пакеты), а также из файлов composer.json и composer.lock. Не забудьте заменить vendor/package на имя нужного вам пакета.

composer remove vendor/package

Очевидно, вам также нужно будет удалить ссылки на этот пакет внутри вашего приложения.

На данный момент я использую следующую версию Composer:

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

Документация

https://getcomposer.org/doc/03-cli.md#remove-rm-uninstall

Обновления

  • 18/10/2024 - Обновлена ссылка на документацию remove-rm-uninstall
  • 27/12/2023 - Исправлена ссылка на документацию remove-rm
  • 26/10/2020 - Обновлен ответ, чтобы подтвердить, что команда работает как для v1.x, так и для v2.x Composer
0

Обычно команда composer remove используется так:

composer remove vendor/package

Однако если пакет Composer был удалён, а кэш "config" не очищен, устранить проблему не получится. При попытке выполнить команду, например:

php artisan config:clear

вы можете получить ошибку In ProviderRepository.php line 208:

Class 'Laracasts\Flash\FlashServiceProvider' not found

Это тупик, если не удалить файлы вручную:

Для Laravel 5.6:

rm bootstrap/cache/config.php

Для Laravel 9:

rm bootstrap/cache/packages.php

Это часто случается в автоматизированных развертываниях, когда вы копируете файлы новой версии поверх старого кэша. Даже если вы очистили кэш перед копированием, в результате у вас останется старый кэш и новый файл composer.json.

0

Вы можете удалить любой пакет, просто выполнив следующую команду в терминале. Если вы указывали провайдеры и алиасы при установке пакета, просто удалите их, а затем обновите Composer:

composer remove vendor/your_package_name
composer update
0

Если вы хотите удалить пакет с помощью Composer в Laravel, вы можете использовать команду:

composer remove package/name

В вашем случае, например, для удаления пакета mckenziearts/laravel-notify, команда будет выглядеть так:

composer remove mckenziearts/laravel-notify

После этого рекомендуется очистить кеш и оптимизировать ваше приложение с помощью команды:

php artisan optimize:clear

Эти команды успешно работают в Laravel 8.

0

Вы можете воспользоваться одним из двух методов:

  1. Выполните команду ниже (это наиболее рекомендованный способ удалить ваш пакет, не обновляя другие пакеты):

    $ composer remove vendor/package
    
  2. Перейдите в файл composer.json и выполните команду ниже, чтобы удалить ваш пакет (но это также обновит ваши другие пакеты):

    $ composer update
    
  3. Также следует выполнить эту команду для очистки кэша, конфигураций и т.д.:

    $ php artisan optimize:clear
    
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь