安装Laravel Composer依赖项时遇到的问题

时间:2019-05-21 19:08:58

标签: php laravel composer-php

我们正尝试通过Composer安装google / recaptcha 1.1软件包,为了进行安装,Composer要求我们安装phpdocumentor软件包,但是在运行时

# composer require --dev phpdocumentor / phpdocumentor dev-master 

这给了我们一个错误,我为此附上了丝网印刷。 enter image description here

以前,在当前状态下,Composer向我们表明nikic / php-parser软件包存在问题,我们发现该软件包已在文件composer.lock中列出,并删除了该软件包,但是现在composer相对于软件包symfony给出了此错误/ console v4.1.1也已在composer.lock文件中列出,我们也尝试从composer.lock中删除此依赖项,但是我不确定通过消除这些依赖项是否可以正确执行操作。因为除了删除另一个错误外,另一个软件包还显示了错误,如果我们继续这样操作,最终将消除许多依赖关系。请帮忙!

2 个答案:

答案 0 :(得分:1)

不要手动从composer.lock中删除内容

当您需要不通过特定版本(例如dev-master或^ 1)的软件包时,composer会下载符合composer.json的最新版本,并将这些版本记录在composer.lock上。

composer.lock只是作曲家安装的副产品

如果您手动编辑composer.lock,则基本上是在弄乱composers的内部结构。

删除软件包的正确方法是运行composer remove vendor/package 或从 composer.json 中手动将其删除,然后运行composer update

composer.lock是神圣的,请不要触摸它。

现在您已触摸它,并且想要拧开自己,所以:

  • 删除composer.lock rm composer.lock
  • 重新安装库,并获得不受篡改的composer.lock composer install
  • 安装您的lib composer require --dev phpdocumentor/phpdocumentor dev-master

相同的结果,不同的方法:

  • 删除composer.lock rm composer.lock
  • 使用所需的库更新composer.json(将phpdocumentor添加到composer.json的“开发依赖项”部分)
  • 再次安装所有内容composer install

答案 1 :(得分:0)

您要安装的PhpDocumentor需要phpDocumentor/Reflection,而后者需要nikic/php-parser,并且此版本对于您的其他依赖项来说过高。

使用composer depends nikic/php-parser来了解问题所在。