新创建的PHP Composer包安装后无法拉取依赖问题求助
问题根源
测试应用的Composer仓库配置使用了package类型,这种方式会手动覆盖目标包的所有元数据(包括依赖声明),而你手动定义的包信息里没有包含vlucas/phpdotenv的依赖,导致Composer无法识别并拉取该依赖。同时手动指定的classmap: ["/"]也不符合原包的PSR-4自动加载规则。
解决步骤
修改测试应用的仓库配置
将repositories中的package类型替换为vcs类型,让Composer自动从Git仓库读取原包的composer.json完整配置:"repositories": [ { "type": "vcs", "url": "prob-best-to-keep-private-for-now" } ]清理旧依赖并重新安装
- 删除测试应用目录下的
vendor文件夹和composer.lock文件 - 执行命令:
composer install
- 删除测试应用目录下的
原理说明
使用vcs类型仓库时,Composer会自动克隆目标Git仓库,读取其中的composer.json文件,从而获取原包的依赖声明、自动加载规则等所有配置,自然会处理vlucas/phpdotenv的依赖拉取。而package类型则完全依赖你手动输入的元数据,一旦遗漏依赖就会导致问题,仅适用于无法通过VCS访问的包场景。
内容的提问来源于stack exchange,提问作者SideKick
相关产品推荐
相关产品推荐

