Php 将--preference dist与Composer一起使用将导致找不到源,但是可以找到源
我正在研究如何在我自己的项目依赖项中使用Composer。我有一些私人的GitHub回购协议需要包含在我的项目中 假设我们有Php 将--preference dist与Composer一起使用将导致找不到源,但是可以找到源,php,github,ssh,composer-php,Php,Github,Ssh,Composer Php,我正在研究如何在我自己的项目依赖项中使用Composer。我有一些私人的GitHub回购协议需要包含在我的项目中 假设我们有 A-主要项目 B-依赖 C-依赖性2 现在,这是JSON中的一个: { "name": "vendor/package", "version": "1.0.0", "require": { "vendor/package" : "1.0.0", "vendor/package2" : "1.0.0" }, "repositories
- A-主要项目
- B-依赖
- C-依赖性2
{
"name": "vendor/package",
"version": "1.0.0",
"require": {
"vendor/package" : "1.0.0",
"vendor/package2" : "1.0.0"
},
"repositories": [
{
"type": "vcs",
"url": "git@github.com:vendor/package.git"
},
{
"type": "vcs",
"url": "git@github.com:vendor/package2.git"
}
]
}
这是B的包装(C当然非常相似)
现在,如果我运行以下命令:
composer install -n --prefer-dist
出现以下错误:
- Installing vendor/package (1.0.0)
Downloading: Failed
Failed to download vendor/package from dist: The "https://api.github.com/repos/vendor/package/zipball/419f5056bde4ff7d76a099648e60fc" file could not be downloaded (HTTP/1.1 404 Not Found)
Now trying to download from source
- Installing vendor/package (1.0.0)
Cloning 419f5056bde4ff7d48e60fc
但下载源代码确实有效。我已经在我的~/.SSH文件夹和Github上安装了SSH密钥。这似乎是可行的,因为源代码可以下载。然而,我很惊讶,我不能得到拉链包。谁能给我指出正确的方向吗
问候,由于某种原因,API调用似乎失败了。您可以尝试通过修改存储库定义来禁用此功能:
{
"type": "vcs",
"url": "git@github.com:vendor/package.git",
"no-api": true
}
或者:
对于私有存储库,可能需要配置一个有效的oauth令牌,但由于某些原因,在当前/最新版本的Composer中似乎没有提示这样做
要配置oauth令牌,请创建一个@,然后将其添加到配置中,如下所示:
composer config -g github-oauth.github.com <oauthtoken>
composer config-g github-oauth.github.com
请让我知道这些方法中的哪一种可以为您解决问题。对于我们的Composer维护人员来说,私有存储库问题非常难以调试,因为我们根本看不出哪里出了问题。我自己也没有任何私有存储库,因此我无法复制您的情况。您能否尝试在最详细的状态(
-vvv
)下运行,并查看是否获得任何更有意义的输出?下载:失败:[Composer\Downloader\TransportException]404:“”文件无法下载(HTTP/1.1 404未找到)无法从dist下载供应商/软件包:“”文件无法下载(HTTP/1.1 404未找到)下载源代码-安装供应商/软件包(1.0.0)这就是我得到的全部。
composer config -g github-oauth.github.com <oauthtoken>