我需要对本地环境和任何其他环境(CI/Staging/测试/生产/等)使用不同的源。
我的
composer.json
看起来是下一个方向:
{
"name": "laravel/laravel",
"type": "project",
"license": "proprietary",
"require": {
...
"my/package": "^2|@dev"
},
"config": {
"preferred-install": {
"my/package": "source",
"*": "dist"
}
},
"minimum-stability": "stable",
"prefer-stable": false,
"repositories": [
{
"type": "path",
"url": "../path/to/package/in/local/environment",
"options": {
"symlink": true
}
},
{
"type": "composer",
"url": "https://private.registry.of/my/package"
}
]
}
在本地环境中它可以工作,但是当我在生产中执行
composer install
时它会抛出:
Source path "../path/to/package/in/local/environment" is not found for package my/package
。这是可以理解的,但我不明白为什么它不尝试从注册表获取包。
在 Composer 文档中,有一个关于处理私有包的很好的部分:https://getcomposer.org/doc/articles/handling-private-packages.md
您可以将您的需求拆分为不同的 json 文件并根据您的环境管理您的包?