假设我们有以下目录结构,我们假设 my-package
也存在于 Packagist 上:
- apps
\_ my-app
\_ composer.json
- packages
\_ my-package
\_ composer.json
添加 my/package
作为 my-app 的依赖项,the documentation声明我们可以使用以下配置:
{
"repositories": [
{
"type": "path",
"url": "../../packages/my-package"
}
],
"require": {
"my/package": "*"
}
}
然而,当我composer update
时,依赖项仍然是从 Packagist 下载的。所以,为了看看,我禁用了 Packagist.org:
{
"repositories": [
{
"type": "path",
"url": "../../packages/my-package",
"packagist.org": false
}
],
"require": {
"my/package": "*"
}
}
我使用 composer clearcache
清除了缓存,使用 composer remove my/package
删除了 my/package
并使用 重新安装了它composer require my/package --prefer-source
(我不明白 --prefer-source
是否仅适用于 vcs)。下载的包还是不是本地包。如何强制 Composer 使用本地的?
最佳答案
"require": {
"my/package": "*"
}
在 VCS
或 path
存储库类型的情况下,您需要指定您请求的包的版本。因此,不要像现在那样使用 *
,而是使用 @dev
:
"require": {
"my/package": "@dev"
}
关于php - 如何强制 Composer 下载本地包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41782242/