php - 安装 Laravel Composer 依赖的问题
问题描述
我们正在尝试通过 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 中删除此依赖项,但我不确定我们是否通过消除这些依赖项来做正确的事情。因为除了删除另一个错误之外,另一个包上还会显示另一个错误,如果我们继续这样下去,我们最终会消除许多依赖关系。请帮忙!
解决方案
不要手动从 composer.lock 中删除东西
当您需要未传递特定版本(如 dev-master 或 ^1)的包时,composer 将下载符合您的 composer.json 的最新版本并将这些版本记录在 composer.lock 上。
composer.lock 只不过是 composer install 的副产品
如果你手动编辑 composer.lock,你基本上是在搞乱作曲家的内部结构。
删除包的正确方法是运行composer remove vendor/package
或手动从composer.json中删除它然后运行composer update
composer.lock 是神圣的,不要碰它。
现在你已经摸到了它,你想自己拧开,所以:
- 删除 composer.lock
rm composer.lock
- 重新安装你的库,并获得一个未篡改的 composer.lock
composer install
- 安装你的库
composer require --dev phpdocumentor/phpdocumentor dev-master
相同的结果,不同的方法:
- 删除 composer.lock
rm composer.lock
- 使用您想要的库更新 composer.json(将 phpdocumentor 添加到 composer.json 的开发依赖项部分)
- 重新安装一切
composer install
推荐阅读
- asp.net-core - 如何在.Net Core Api Server的FromForm情况下使用自定义绑定来绑定属性
- php - TrustProxies 和 Laravel 返回我的服务器的 IP 地址,而不是最终用户
- python - 如何在selenium webdriver python3.7中使用带有内部html的find_element_by_xpath单击按钮
- javascript - 如何在 Vue.js 中查看动态数据字段
- asp.net-mvc - 如何添加选项
? - python - 每个标签聚合,当每行都有一个标签数组时
- java - 微服务没有从服务器获取配置:http://localhost:8888 Springboot
- python - MODIS AQUA 数据 - 使用 python GDAL 堆叠/马赛克数据
- php - ckeditor没有保存在mysql中
- c# - Reactive Observable.Create 为没有 Task.Run 的异步生产者