使用PHP Composer从Laravel中删除包的正确方法是什么?
到目前为止,我尝试过:
从文件编写器中删除声明。Json(在“require”部分) 从app.php文件中删除任何类别名 从我的代码中删除对包的任何引用:-) 运行编写器更新 运行composer dump-autoload
这些方法都不管用!我错过了什么?
使用PHP Composer从Laravel中删除包的正确方法是什么?
到目前为止,我尝试过:
从文件编写器中删除声明。Json(在“require”部分) 从app.php文件中删除任何类别名 从我的代码中删除对包的任何引用:-) 运行编写器更新 运行composer dump-autoload
这些方法都不管用!我错过了什么?
当前回答
如果在完成前面回答的所有步骤后仍然得到错误,请转到您的项目,Bootstrap→Cache→config.php。手动从缓存数组中删除提供程序和别名项。
其他回答
你可以做以下两种方法中的任何一种:
运行以下命令(在不更新其他包的情况下删除包的最推荐方法) $ composer删除供应商/包 去找你的作曲家。Json文件,然后运行如下命令,它将删除你的包(但它也会更新你的其他包) $ composer更新
我把它修好了……从Laravel中删除包的步骤如下:
从文件编写器中删除声明。Json(在“require”部分) **从config/app.php文件中删除Service Provider(在providers数组中引用) 从config/app.php文件中删除任何类别名 从你的代码中删除所有对包的引用:-) 运行composer update vendor/package-name。这将从供应商文件夹中删除包文件夹,并将重新构建Composer自动加载映射。 手动删除已发布的文件(阅读zwacky的注释)
它将从Vendor文件夹中删除包文件夹。
这里有很多步骤:
转到文件编写器。Json,然后看看这个包是怎么写的。
例如
“要求”: (twig/twig)
我希望移除3.0的树枝
现在打开cmd并运行composer remove vendor/your_package_name as composer remove twig/twig将删除包。 作为最后一步,运行composer update。这肯定会提示您没有需要安装或更新的东西,但如果您的包有相互依赖关系,这是很重要的。
通常使用这样的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文件。
我们提出了一个很好的解决方案。这个解决方案实际上在Laravel 6中完成了。如果你想从你的Laravel项目中删除任何包,那么你可以通过以下步骤轻松删除包:
步骤1:您必须知道要删除的包的名称。如果你不知道完整的包名,那么你可以打开你的项目文件夹,然后转到编辑器。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:用项目根文件夹目录打开命令提示符
步骤3:首先,使用以下命令清除所有缓存。依次执行命令。
php artisan cache:clear
php artisan config:clear
步骤4:现在写以下命令删除包。这里您需要更改您的包名称,而不是我的示例包。
composer remove fideloper/proxy
现在,等待几秒钟,您的包裹将被取出。