有没有办法选择性地要求本地作曲家包?



我有多个开发环境,其中一个本地包含我的软件包的源代码,另一个没有。我想单独配置我的环境,但我也想让作曲家知道它应该在存在时使用我的本地包,并使用 packagist 版本作为后备。

我试着在网上寻找这种东西,但我找不到直接的答案。我已经知道如何要求本地包,但我不知道如何选择性地要求本地包。

重申一下,我想像这样要求我的包:

"require": {
"php": "^7.1.3",
/* ... */
"my-namespace/my-package": "dev-master",
},

并且能够以某种方式将此包列为有时在本地可用。如果我这样做:

"repositories": [
{
"type": "path",
"url": "./path/to/my/package"
},
]

我可以在本地要求它,但这意味着在我的其他开发环境中(包在本地不存在,我也不希望它存在(,作曲家将无法要求我的包。

完成此操作后,我希望我的本地环境(我的软件包在本地托管的环境(需要包的本地版本,并且我希望我的其他环境(没有本地托管我的包的环境(需要包的包版本。

有什么想法吗?

我认为您不想"可选要求",因为软件包是必不可少的。您希望始终包含它,但仅在本地不可用时才下载它。

有这篇文章描述了该过程:https://johannespichler.com/developing-composer-packages-locally/

简而言之:您在应用程序中添加一个指向本地库存储库的"存储库"条目:

"repositories": {
"dev-package": {
"type": "path",
"url": "relative/or/absolute/path/to/my/dev-package",
"options": {
"symlink": true
}
}
}

"url"指向本地库存储库的路径。options.symlink 很重要,否则 Composer 会复制存储库而不是符号链接它(强制您不断更新副本,而不是自动获取所有更改(。

在其他机器上,路径指向无处,Composer 不会检测到那里的库,并搜索其他来源,可能是从存储库服务器下载的。

相关内容

  • 没有找到相关文章

最新更新