如何使用composer从Laravel中删除包?

时间:2014-04-17 06:59:26

标签: laravel-4 package composer-php uninstall

从Laravel 4中删除软件包的正确方法是什么? 我试过这么久:

  1. composer.json删除声明(在“要求”部分中)
  2. app.php
  3. 中删除所有类别名
  4. 从我的代码中删除对包的任何引用: - )
  5. 运行composer update
  6. 运行composer dump-autoload
  7. 不工作!我错过了什么吗?

    某些软件包通过“artisan config:publish ...”发布其配置。有没有办法“取消发布”他们?

19 个答案:

答案 0 :(得分:450)

运行以下命令将从供应商(或安装软件包的任何位置),composer.json和composer.lock中删除软件包。适当更改供应商/包裹。

composer remove vendor/package

显然,您需要删除应用中对该软件包的引用。

我目前正在运行以下版本的作曲家:

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

答案 1 :(得分:158)

搞定了......从Laravel中删除软件包的步骤是:

  1. 从composer.json删除声明(在“require”部分中)
  2. 从“app / config / app.php”中删除服务提供商(“提供商”数组中的引用)
  3. 从“app / config / app.php”
  4. 中删除所有类别名
  5. 从代码中删除对包的任何引用: - )
  6. 运行“composer update vendor / package-name”。这将从“vendor”文件夹中删除包文件夹,并将重建composer autoloading map。
  7. 手动删除已发布的文件(阅读zwacky的评论)
  8. 它将从“Vendor”文件夹中删除包文件夹

答案 2 :(得分:35)

运行以下命令

    composer remove Vendor/Package Name  

多数民众赞成。不需要作曲家更新。 供应商/包名称只是

之前安装的目录

答案 3 :(得分:32)

只需在终端输入follwing命令即可删除任何包,只需删除安装包时提供的提供程序和别名(如果有)并更新作曲家,

composer remove vendor/your_package_name
composer update

答案 4 :(得分:30)

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

$ composer remove vendor/package

但是,如果删除了composer软件包并且未清理配置缓存,则无法清理

php artisan config:clear

您会收到错误消息In ProviderRepository.php line 208:

  

未找到“ Laracasts \ Flash \ FlashServiceProvider”类

这是死胡同,除非您删除文件

$rm bootstrap/cache/config.php

这是我正在谈论的Laravel 5.6,不是某种非常古老的东西。

通常在自动部署中发生,将新版本的文件复制到旧缓存的顶部。即使您在复制前清除了缓存。您最终得到旧的缓存和新的composer.json。

答案 5 :(得分:17)

您可以执行以下两种方法中的任何一种:

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

    $ composer remove vendor/package

  2. 转到你的composer.json文件,然后运行如下命令将删除你的包(但它也会更新你的其他包)

    $ composer update

答案 6 :(得分:12)

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

php artisan cache:clear  
php artisan config:clear 

如果您忘记删除缓存并且找不到类错误,请重新安装软件包并清除缓存并再次删除。

答案 7 :(得分:11)

如果在完成上述所有步骤后仍然出现错误,请转到您的项目bootstrap->cache->config.php删除提供商&手动为缓存数组中的条目添加别名。

答案 8 :(得分:8)

**

  

使用“ composer删除供应商/软件包”

** 这是示例: 安装/添加包装

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

答案 9 :(得分:7)

如果给定的答案仍然无法帮助您删除,请尝试以下操作:

  • require

  • 手动删除composer.json中的行
  • 运行composer update

答案 10 :(得分:7)

您可以通过在终端中键入以下命令来删除任何软件包,只需删除在安装软件包时提供的提供程序和别名并更新作曲家

composer remove <package_name>
composer update

答案 11 :(得分:4)

谢谢,我找到了删除软件包的正确格式

语法:
composer删除程序包

示例:
composer删除 laravel / tinker

答案 12 :(得分:4)

使用

删除软件包
composer remove vendorname/packagename

您可以检查remove package from composer.json - docs

或者您可以从composer.json文件中删除程序包名称,然后在项目目录中运行composer update。希望对您有所帮助。

答案 13 :(得分: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"
    },

假设,这里我要删除“ fideloper / proxy”软件包。

步骤2 :使用项目根文件夹目录打开命令提示符 enter image description here 步骤3:首先,通过以下命令清除所有缓存。逐个运行命令。

php artisan cache:clear  
php artisan config:clear 

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

composer remove fideloper/proxy

现在,请等待几秒钟,以删除您的包裹。

答案 14 :(得分:2)

使用composer命令删除软件包

composer remove <package>

要使用composer命令安装软件包

composer require <package>

要安装composer.json中提到的所有软件包

composer install

更新软件包

composer update

我将这些用于Laravel项目

答案 15 :(得分:2)

  1. 从供应商文件夹中删除包文件夹(手动删除)
  2. 从文件 composer.json 和“composer.lock”文件中删除它(使用 Ctrl + F5搜索)
  3. 从文件 config/app.php 和文件 bootstrap/cache/config.php 中删除它
  4. 运行这些命令:
    composer remove **your-package-name**
    php artisan cache:clear
    php artisan config:clear
    

答案 16 :(得分:2)

在 Laravel 8.* 上,以下步骤对我有用:

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

  2. 从文件 Config/app.php

    中删除 Provideraliases
  3. Config 文件夹中删除相关文件。

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

答案 17 :(得分:0)

这里有很多步骤:

  1. 转到composer.json并查找该软件包及其在该处的写入方式。
  • 例如

{“要求”:{ “ twig / twig”:“ ^ 3.0”}}

我希望删除树枝3.0

  1. 现在打开cmd并以System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host System.Net.Sockets.SocketException: at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) System.IO.IOException: at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Net.TlsStream.Pro ... System.Net.WebException: at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request) at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 的身份运行composer remove vendor/your_package_name,这将删除程序包。

  2. 作为最后一步,composer remove twig/twig肯定会给您带来composer update的消息,但这对于您的程序包具有相互依赖关系非常重要。

答案 18 :(得分:0)

要添加包,命令如下:

composer require spatie/laravel-permission

要删除软件包,命令如下:

composer remove spatie/laravel-permission