安装Laravel Composer依赖项的问题

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (460)

我们正在尝试通过Composer安装google / recaptcha 1.1软件包,以便安装它.Composer要求我们安装phpdocumentor软件包,但是在运行时

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

这给了我们一个错误,我附上了一个屏幕打印。

以前当前的状态Composer已经向我们指出了nikic / php-parser包的问题,​​我们发现文件composer.lock中列出了包,我们删除了它,但是现在composer给了我们相对于包symfony / console v4的这个错误.1.1它也在composer.lock文件中列出,我们也尝试从composer.lock中删除这个依赖项,但我不确定我们是通过消除这些依赖项来做正确的事情。因为除了删除另一个包之外的错误,如果我们继续这样,我们最终将消除许多依赖。请帮忙!

提问于
用户回答回答于

您尝试安装的PhpDocumentor需要phpDocumentor/Reflection谁需要,nikic/php-parser并且此版本对于您的其他依赖项来说很高。

使用composer depends nikic/php-parser到understrand什么是错的。

用户回答回答于

不要手动从composer.lock中删除东西

当您需要包而不传递特定版本(如dev-master或^ 1)时,composer将下载关于composer.json的最新版本并在composer.lock上记录这些版本。

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

如果你手动编辑composer.lock,你基本上搞乱了作曲家的内部。

删除包的正确方法是运行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上的dev dependencies部分)
  • 再安装一切 composer install

扫码关注云+社区

领取腾讯云代金券