我对Composer相对较新,一直在寻找使用路径repo类型使用本地存储库的示例。我在这个主题上发现了几篇文章(例如this one和this one,但是当我尝试这些示例时,我最终得到的错误如下:
The requested package myvendor/mylibrary could not be found in any version, there may be a typo in the package name.
所以我认为我创造了一个超级简单的例子,说明了我希望有人可以指出我正确的方向。
我的示例应用程序按此组织:
├── app1
│ └── composer.json
├── app2
│ └── composer.json
└── libraries
└── testlibrary
├── composer.json
├── TestService.php
libraries/testlibrary/composer.json
内如下:
{
"name": "myvendor/mylibrary",
"version": "dev-master"
}
在每个应用文件夹(例如app1)中,composer.json
文件如下所示:
{
"repositories": [
{
"type": "path",
"url": "../libraries/testlibrary"
}
],
"require": {
"myvendor/mylibrary": "*"
}
}
如果有人对我做错了什么有任何建议,我会非常感激!
答案 0 :(得分:1)
我找到了答案here
而不是:
{
"repositories": [
{
"type": "path",
"url": "../../packages/my-package"
}
],
"require": {
"my/package": "*"
}
}
你应该这样写:
{
"repositories": [
{
"type": "path",
"url": "../../packages/my-package"
}
],
"require": {
"my/package": "dev-master"
}
}
请注意*
部分中从dev-master
到require
的更改。
答案 1 :(得分:0)
您的设置看起来正确无误。我也使用那个解决方案。我认为问题出在其他地方。尝试将*
约束更改为dev-master
之类的内容。如果仍然无法解决问题,请从composer.json
发布mylibrary
。