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

到目前为止,我尝试过:

从文件编写器中删除声明。Json(在“require”部分) 从app.php文件中删除任何类别名 从我的代码中删除对包的任何引用:-) 运行编写器更新 运行composer dump-autoload

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


当前回答

如果“composer remove package/name”不起作用,你仍然可以手动删除它。 注意:package/name类似于space等。

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

注意:包文件的意思是你正在寻找的包。例如,您希望删除Spatie。然后你需要在供应商文件中找到类似的名称,你需要手动删除它。 您的包已成功删除。

其他回答

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

手动删除composer.json中的require行 运行编写器更新

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

Use:

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

从供应商文件夹中删除包文件夹(手动删除) 从文件编写器中删除它。Json和'composer。锁定文件(使用Ctrl + F5搜索) 从config/app.php文件和bootstrap/cache/config.php文件中删除它 执行以下命令: 编译器删除**your-package-name** PHP工匠缓存:清除 PHP工匠配置:清除

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

composer remove vendor/package

但是如果一个Composer包被删除了,而“配置”缓存没有被清理,你就不能清理它。当你这样尝试的时候

php artisan config:clear

在ProviderRepository.php第208行,你会得到一个错误:

类“Laracasts\Flash\FlashServiceProvider”未找到

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

rm bootstrap/cache/config.php

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

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