作曲家:无法消除对生产的依赖

时间:2018-11-20 09:19:07

标签: composer-php

在一个本地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 |-安静] [-v | vv | vvv |-详细] [-V |-版本] [--ansi] [--no-ansi]   [-n |-无交互] [-e |-环境ENV] [-无调试] [-] !!
  !!

     

删除失败,将./composer.json恢复为其原始内容。

因此,似乎还没有安装?我运行composer require logger并安装后,再次运行composer remove logger时,我又遇到了另一个错误,提示锁文件不同步。我删除了锁定文件并运行composer install,该方法可以正常工作。然后,我再次尝试composer remove logger并收到错误消息:

  

使用软件包信息加载composer存储库更新   依赖项(包括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 |-安静] [-v | vv | vvv |-详细] [-V |-版本] [--ansi] [--no-ansi]   [-n |-无交互] [-e |-环境ENV] [-无调试] [-] !!
  !!

     

删除失败,将./composer.json恢复为其原始内容。

我不明白为什么这行不通,而且确实令人困惑。有谁知道我做错了什么或做错了什么?

1 个答案:

答案 0 :(得分:1)

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

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