如何在Composer中使用路径类型本地存储库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Composer中使用路径类型本地存储库相关的知识,希望对你有一定的参考价值。
我是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"
}
在每个app文件夹(例如app1)中,composer.json
文件如下所示:
{
"repositories": [
{
"type": "path",
"url": "../libraries/testlibrary"
}
],
"require": {
"myvendor/mylibrary": "*"
}
}
如果有人对我做错了什么有任何建议,我会非常感激!
答案
我找到了答案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
的变化。
另一答案
您的设置看起来正确。我也使用那个解决方案。我认为问题出在其他地方。尝试将*
约束改为像dev-master
。如果这还没有解决,请从composer.json
发布你的mylibrary
。
以上是关于如何在Composer中使用路径类型本地存储库的主要内容,如果未能解决你的问题,请参考以下文章