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://composer.php.ac.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