【问题标题】:Composer: cannot remove dependency on production作曲家:无法消除对生产的依赖
【发布时间】:2019-04-22 16:55:02
【问题描述】:

在一个本地 symfony 项目中,我使用 composer remove logger 删除了一个未使用的依赖项,它没有任何问题。当我试图从生产中删除它时,我搞砸了我的项目并收到以下错误:

未安装列出的更新包“symfony/monolog-bundle”。无视。加载作曲家存储库 包信息更新依赖(包括require-dev) 无需安装或更新包 symfony/lts 已被放弃,你 应该避免使用它。请改用 symfony/flex。生成自动加载 文件 ocramius/package-versions: 生成版本类... ocramius/package-versions: ...完成生成版本类执行 脚本缓存:清除 [KO] [KO] 脚本缓存:清除返回错误 代码 255 !! !! [警告] 部分命令无法注册:
!! !!在 srcProdProjectContainer.php 第 938 行:!!
!!找不到类“Symfony\Bridge\Monolog\Logger”!!
!! !! !! [警告] 部分命令无法注册:
!! !!在 srcProdProjectContainer.php 第 938 行:!!
!!找不到类“Symfony\Bridge\Monolog\Logger”!!
!! !! !!在 srcProdProjectContainer.php 第 922 行:!!
!!尝试从命名空间加载类“Logger” “Symfony\Bridge\Monolog”。 !!您是否忘记了“使用”声明 例如"Symfony\Component\HttpKernel\Log !! \Logger" 或 “Symfony\Component\HttpKernel\Tests\Logger”? !!
!! !!缓存:清除 [--no-warmup] [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] !!
!!

删除失败,正在将 ./composer.json 还原为其原始内容。

所以它似乎甚至没有安装?我运行composer require logger 并安装它,在我再次运行composer remove logger 之后,我收到另一个关于锁定文件不同步的错误。我删除了锁定文件并运行了composer install,它可以工作。然后我再次尝试composer remove logger 并得到错误:

使用包信息加载作曲家存储库更新 依赖项(包括 require-dev) 包操作:0 安装,0 更新,3 次删除 - 移除 symfony/monolog-bundle (v3.3.1) - 移除 symfony/monolog-bridge (v4.1.7) - 删除 monolog/monolog (1.24.0) 包 symfony/lts 已废弃,你应该避免使用它。请改用 symfony/flex。 编写锁定文件生成自动加载文件 ocramius/package-versions: 生成版本类... ocramius/package-versions: ...完成 生成版本类 Symfony 操作:1 个配方 (b1d72bd33ffcb308097230cfdbc2a279) - 取消配置 symfony/monolog-bundle (>=3.1):来自 github.com/symfony/recipes:master 执行脚本缓存:清除 [KO] [KO] 脚本缓存:清除返回错误代码 255 ! !!
[警告] 部分命令无法注册:
!! !!在 srcProdProjectContainer.php 第 939 行:!!
!!找不到类“Symfony\Bridge\Monolog\Logger”!!
!! !! !! [警告] 部分命令无法注册:
!! !!在 srcProdProjectContainer.php 第 939 行:!!
!!找不到类“Symfony\Bridge\Monolog\Logger”!!
!! !! !!在 srcProdProjectContainer.php 第 923 行:!!
!!尝试从命名空间加载类“Logger” “Symfony\Bridge\Monolog”。 !!您是否忘记了“使用”声明 例如"Symfony\Component\HttpKernel\Log !! \Logger" 或 “Symfony\Component\HttpKernel\Tests\Logger”? !!
!! !!缓存:清除 [--no-warmup] [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] !!
!!

删除失败,正在将 ./composer.json 还原为其原始内容。

我不明白为什么这不起作用,而且真的很混乱。有谁明白我做错了什么或错了什么?

【问题讨论】:

    标签: composer-php


    【解决方案1】:

    原来是缓存问题。尽管我之前曾尝试使用php bin/console cache:clear 清除缓存,但这还不够。

    在文件夹/var/cache/prod 中有一个文件srcProdProjectContainer.php,我必须删除它。删除此文件后,我设法删除了依赖项。

    【讨论】:

      猜你喜欢
      • 2019-12-02
      • 2014-08-16
      • 2013-04-15
      • 2015-07-26
      • 2015-09-18
      • 2015-03-26
      • 2014-03-10
      • 1970-01-01
      • 2016-12-30
      相关资源
      最近更新 更多