如何使用Composer命令行添加非公共仓库?

61

我想添加一个不在Packagist上的新包,它是一个本地或非公共仓库。我知道如何在composer.json中实现这一点。例如:

"repositories": [
    {
        "type": "vcs",
        "url": "https://bitbucket.org/xxxx/xxxxx.git"
    }
],
"require": {
    "xxxx/xxxxx": "dev-master"
},

但我希望能够通过命令行完成此操作,以便我可以在一个配置文件中添加这些非公共的版本库。

在 Packagist 注册的软件包可以使用以下命令进行添加:

composer require ....

但是对于没有在Packagist注册的存储库,该如何处理?

1个回答

93

您可以从项目根目录运行以下命令,将存储库添加到该项目的composer.json中:

composer require vendor/package
composer config repositories.repo-name vcs https://github.com/<orgname or username>/repo

然后你可以使用以下命令来获取特定的仓库:

composer require <orgname or username>/repo:dev-branchname

Composer 的文档在 Modifying Repositories (CLI: composer config) 中讲解。



19
然后使用composer require package-name:dev-branchname 命令添加该软件包。 - Patrick
1
这破坏了我的composer.json的json :D 我想通过命令行运行它,按照规范进行操作,而不是篡改composer.json,但是没关系。至少那样可以工作 :P - OZZIE
1
专业提示:您可以使用“repositories.0”来避免它破坏自己的JSON文件。 - ebsp
为了避免在添加多个仓库时发生覆盖,您可以将“repo-name”替换为您自己的字符串。 - Michael Walter
3
repositories.0 不是一个有效的解决方案,我也这样认为,但它会替换第一个条目而不是在第一个条目之前插入新的条目。 - Nickolaus
1
这是一个指向该命令文档的链接: https://getcomposer.org/doc/03-cli.md#modifying-repositories - jofitz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接