找不到composer.json中的必需包

时间:2014-09-04 09:08:10

标签: laravel composer-php packagist

我使用Laravel的工作台创建了一个包,并在pica / pica-base下将其上传到Packagist。该软件包包含以下require语句:

"要求":{         " php":"> = 5.4.0",         "照亮/支持":" 4.2。*",         " gregwar / captcha":" dev-master"     },

当我尝试安装我的pica / pica-base软件包时,它无法说明以下错误消息:

您的要求无法解析为可安装的软件包。

问题1      - pica / pica-base dev-master需要gregwar / captcha dev-master - >找不到匹配的包。      - pica / pica-base dev-master需要gregwar / captcha dev-master - >找不到匹配的包。      - 对pica / pica-base dev-master的安装请求 - >可以通过pica / pica-base [dev-master]来满足。

根据常见问题解答的建议,我还尝试使用gregwar / captcha包并使用相同的结果,使用' dev'以及#dev; master'的程序。

我不明白这一点,因为有了完全相同的要求,我可以在任何其他项目中安装gregwar-package。并且包的链接显示在Packigist(https://packagist.org/packages/pica/pica-base)上的包的页面中。

那为什么会失败?

感谢您的努力!

1 个答案:

答案 0 :(得分:0)

默认情况下,Composer在计算依赖项时仅使用稳定包。如果要使用不稳定(dev-master)包,有两种方法可以覆盖它:

  1. 在您的根composer.json中,需要dev-master版本的软件包(这就是获取pica/pica-base软件包的原因,因为它位于您的根composer.json中})
  2. 在您的根composer.json中,将minimum-stability flag设置为dev

    "require": {
        ...
    },
    "minimum-stability": "dev"
    
  3. 所以你基本上可以做以下事情之一:

    1. 在您的根gregwar/captcha(您的Laravel项目之一)中添加composer.json依赖项
    2. "minimum-stability": "dev"添加到您的根composer.json
    3. 我建议选择第二个选项。如果您这样做,您可能还想添加prefer-stable flag,以确保不会在不稳定版本中下载所有软件包:

      "require": {
          ...
          "pica/pica-base": "dev-master"
      },
      "minimum-stability": "dev",
      "prefer-stable": true