Composer本地存储库未安装(适用于Laravel)

时间:2016-03-30 15:46:27

标签: php laravel repository composer-php

我正在使用Laravel软件包,我尝试使用composer.json中的VCS选项将其添加到我的项目中,但它没有安装。我尝试了以下

链接到我的Vagrant机器上的绝对路径

"repositories": [
    {
        "type": "vcs",
        "url": "/home/vagrant/Code/cld/gallery/packages/Notflip/cld/"
    }
],
"require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*",
    "notflip/cld": "dev-master"
},

链接到我的Windows机器的绝对路径

"repositories": [
    {
        "type": "vcs",
        "url": "D:/Sites/cld/gallery/packages/Notflip/cld"
    }
],
"require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*",
    "notflip/cld": "dev-master"
},

但没有任何工作,该项目如下:

enter image description here

我在Windows机器上使用Vagrant(Homestead)。

3 个答案:

答案 0 :(得分:1)

尝试将其更改为:

"repositories": [
    {
        "type": "path",
        "url": "packages/Notflip/cld"
    }
],
"require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*",
    "notflip/cld": "*"
},

将以下内容添加到composer.json

"minimum-stability": "dev"

您可以在此处找到有关此内容的更多信息:https://getcomposer.org/doc/05-repositories.md#path

答案 1 :(得分:0)

我或多或少和@ roj-vroemen一样,但有点不同。

在我的情况下,在我的项目目录中创建一个名为packages的文件夹,并在其上添加我的辅助包。

  • 项目-DIR
    • FOO项目
    • 你好世界项目
      • 我的第三方封装

在my-third-party-package composer.json上添加以下行:

{
    "name": "paubenetprat/my-third-party-package",
    "description": "My third party package description.",
    "type": "library",
    "require": {
        ...
    },
    "minimum-stability": "stable"
}

之后,在我的主项目composer.json(foo-project)上添加以下内容:

"repositories": [
    {
        "type": "path",
        "url": "../packages/my-third-party-package",
        "options": {
            "symlink": true
        }
    }
],
"require": {
    "paubenetprat/my-third-party-package": "dev-master"
}

最终你需要运行:

composer update paubenetprat/my-third-party-package

指定dev-[current-project-branch]非常重要。如果您正在使用第三方软件包上的功能(feature/whatever-your-are-doing),则应在主项目作曲家上指定该功能:

"require": {
    "paubenetprat/my-third-party-package": "dev-feature/whatever-your-are-doing"
}

答案 2 :(得分:-1)

Vcs适用于版本控制而非本地版本。您可能会更幸运地使用类映射并将其指向包根。