如何在Composer中使用路径类型本地存储库

问题描述 投票:2回答:2

我是Composer的新手,并且一直在寻找使用路径repo类型使用本地存储库的示例。我发现了几篇文章(例如关于这个主题的this onethis 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": "*"
    }
}

如果有人对我做错了什么有任何建议,我会非常感激!

dependencies composer-php
2个回答
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-masterrequire的变化。


0
投票

您的设置看起来正确。我也使用那个解决方案。我认为问题出在其他地方。尝试将*约束改为像dev-master。如果这还没有解决,请从composer.json发布你的mylibrary

© www.soinside.com 2019 - 2024. All rights reserved.