onspli / composer-inject-repositories
插件从外部文件加载仓库定义并将它们注入到composer.json。
v0.1.0
2024-04-20 10:29 UTC
Requires
- composer-plugin-api: ^2.0
Requires (Dev)
- composer/composer: ^2.0
README
此Composer插件允许从外部文件加载仓库定义并将它们注入到composer.json。包含额外仓库的文件可以存储在本地或从远程位置(http、git)获取。
用法
您有多个存储在私有GitHub仓库中的composer包(因此不在公共packagist.org仓库中),并且您想在多个composer项目中使用这些包。
全局安装插件。
composer global require onspli/composer-inject-repositories
创建文件repos.json
,列出您想要使用的所有仓库(如https://getcomposer.org.cn/doc/05-repositories.md中所述)
{ "repositories": [ { "type": "git", "url": "git@github.com:onspli/private-package-1.git" }, { "type": "git", "url": "git@github.com:onspli/private-package-2.git" }, { "type": "git", "url": "git@github.com:onspli/private-package-3.git" } ] }
将额外选项inject-repositories
添加到项目的composer.json
。
{ "name": "onspli/project-using-private-repos", "type": "project", "extra": { "inject-repositories": [ { "type": "local", "path": "/path/to/repos.json" }, { "type": "remote", "url": "https://my-domain.cz/repos.json" }, { "type": "git", "url": "git@github.com:onspli/private-repos.git", "file": "repos.json" } ] }, "require": { "onspli/private-package-2": "dev-main" } }
插件读取repos.json
文件并将仓库注入到项目的composer.json
,因此在composer调用期间它实际上看起来像
{ "name": "onspli/project-using-private-repost", "type": "project", "require": { "onspli/private-package-2": "dev-main" }, "repositories": [ { "type": "git", "url": "git@github.com:onspli/private-package-1.git" }, { "type": "git", "url": "git@github.com:onspli/private-package-2.git" }, { "type": "git", "url": "git@github.com:onspli/private-package-3.git" } ] }
详细模式
使用composer详细模式查看注入的文件和仓库
composer install --verbose