如何使用PHP Composer从Laravel中删除包?

使用PHP Composer从Laravel中删除包的正确方法是什么?

到目前为止,我尝试过:

  1. 从文件composer.json中删除声明(在"require"部分)
  2. 从文件app.php中删除任何类的别名
  3. 从我的代码中删除对包的任何引用:-)
  4. 运行# EYZ0
  5. 运行# EYZ0

这些方法都不管用!我错过了什么?

938579 次浏览

我把它修好了……从Laravel中删除包的步骤如下:

  1. 从文件composer.json中删除声明(在"require"部分)
  2. **从文件配置/ app.php中删除服务提供者(在"providers"数组)
  3. 从文件配置/ app.php中删除任何类别名
  4. 从你的代码中删除所有对包的引用:-)
  5. # EYZ0运行。这将从vendor文件夹中删除包文件夹,并将重新构建Composer自动加载映射。
  6. 手动删除已发布的文件(读取这是zwacky的评论)

它将从Vendor文件夹中删除包文件夹。

作曲家1。X和2.x

运行以下命令将从vendor(或任何安装包的地方),composer.jsoncomposer.lock中删除包。适当地更改供应商/包。

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

更新

  • 26/10/2020 -更新的答案断言命令适用于v1。X和v2。作曲家的x

如果在完成前面回答中的所有步骤后仍然得到错误,请转到您的项目,引导缓存config。。手动从缓存数组中删除提供程序和别名项。

你可以做以下两种方法中的任何一种:

  1. 运行以下命令(在不更新其他包的情况下删除您的包的最推荐方法)

    # EYZ0 < / p >

  2. 去找你的作曲家。Json文件,然后运行如下命令,它将删除你的包(但它也会更新你的其他包)

    # EYZ0 < / p >

在从composer.json声明中删除包之前,请删除缓存:

php artisan cache:clear
php artisan config:clear

如果你忘记删除缓存,你得到一个类未发现错误;,然后请重新安装包,清除缓存,并再次删除。

只要在终端中输入以下命令,就可以删除任何包,并删除安装包时提供的提供程序和别名(如果有的话),并更新编写器。

composer remove vendor/your_package_name
composer update

如果给出的答案仍然不能帮助你消除这些问题,试试这个:

  • 手动从composer.json删除require中的行

  • 运行# EYZ0

通常这样使用composer remove就足够了:

composer remove vendor/package

但是如果一个Composer包被移除,并且“config”;缓存未清理,无法清理。当你这样尝试的时候

php artisan config:clear

你会得到一个错误In ProviderRepository.php line 208:

类“Laracasts\Flash\FlashServiceProvider”未找到

这是一个死胡同,除非你删除文件:

rm bootstrap/cache/config.php

我说的是Laravel 5.6,不是什么很老的东西。

这通常发生在自动部署时,当您将新版本的文件复制到旧缓存之上时。即使你在复制之前清空了缓存。最终会得到一个旧的缓存和一个新的composer.json文件。

使用:

composer remove vendor/package

这是一个例子:

安装或添加包

composer require firebear/importexportfree

卸载/移除

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

我们提出了一个很好的解决方案。这个解决方案实际上在Laravel 6中完成了。如果你想从你的Laravel项目中删除任何包,那么你可以通过以下步骤轻松删除包:

您必须知道要删除的包的名称。如果你不知道完整的包名,那么你可以打开你的项目文件夹,找到composer.json文件,并在require数组中检查这个名称:

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

假设,在这里我要删除“fideloper/proxy”;包中。

步骤2:用项目根文件夹目录打开命令提示符

Enter image description here

首先,使用以下命令清除所有缓存。依次执行命令。

php artisan cache:clear
php artisan config:clear

现在编写以下命令删除包。这里您需要更改您的包名称,而不是我的示例包。

composer remove fideloper/proxy

现在,等待几秒钟,您的包裹将被取出。

这里有很多步骤:

  1. 转到文件composer.json,寻找包和它是如何写在那里。
  • 例如

{"require": { “树枝/ twig":“^ 3.0“;}} < / p >

我希望删除嫩枝 3.0

  1. 现在打开cmd并运行composer remove vendor/your_package_name,因为composer remove twig/twig将删除包。

  2. 最后一步,运行composer update。这肯定会给您一个nothing to install or update的信息,但如果您的包有相互依赖关系,这是很重要的。

在Laravel。*,以下步骤对我有用:

  1. 在终端上执行composer remove package-name命令

  2. 从文件配置/ app.php中删除Provideraliases

  3. 配置文件夹中删除相关文件。

从使用它的代码中删除它。

  1. 从供应商文件夹中删除包文件夹(手动删除)
  2. composer.jsoncomposer.lock文件中删除它(使用Ctrl + F5搜索)
  3. 从文件配置/ app.php和文件引导/缓存/ config . php中删除它
  4. 执行以下命令:
    composer remove **your-package-name**
    php artisan cache:clear
    php artisan config:clear
    

要添加包,命令如下:

composer require spatie/laravel-permission

要删除包,命令如下:

composer remove spatie/laravel-permission
如果这不起作用&“composer remove package/name&;”,你仍然可以手动删除它。< br > 注意:package/name类似于space etc.

  1. 去找作曲家。Json,并找到包名
  2. 从composer.json中删除包名
  3. 在您的Laravel项目中找到供应商文件。
  4. 删除vendor目录下的包文件
  5. 在终端上运行composer install

注意:包文件的意思是你正在寻找的包。例如,您希望删除Spatie。然后你需要在供应商文件中找到类似的名称,你需要手动删除它。< br > Your package was removed successfully.

.

.

.

.

运行

Composer remove package/name
Php artisan optimize

例如“作曲家remove mckenziearts/ larvel -notify"在使用Laravel 8时为我工作。