代码之家  ›  专栏  ›  技术社区  ›  Edwin van Dessel

在composer.json中找不到所需的包

  •  0
  • Edwin van Dessel  · 技术社区  · 10 年前

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

    “要求”:{ “php”:“>=5.4.0”, “照明/支持”:“4.2.*”, “gregwar/captcha”:“开发大师” },

    当我尝试安装pica/pica基本包时,它失败,并显示以下错误消息:

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

    问题1 -pica/pica基本开发主机需要gregwar/cappcha开发主机->找不到匹配的包。 -pica/pica基本开发主机需要gregwar/cappcha开发主机->找不到匹配的包。 -pica/pica基本开发主机的安装请求->可由pica/pica base〔dev master〕满足。

    根据常见问题解答的建议,我还使用gregwar/cappcha包尝试了“dev”代替“dev-master”的过程,但结果相同。

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

    那么为什么这会失败呢?

    感谢您的努力!

    1 回复  |  直到 10 年前
        1
  •  1
  •   Nic Wortel    10 年前

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

    1. 在你的根 composer.json ,需要 dev-master 包的版本(这就是为什么您在获取 pica/pica-base 包,因为它在您的根目录中 组合器.json )
    2. 在你的根 组合器.json ,设置 minimum-stability flag dev :

      "require": {
          ...
      },
      "minimum-stability": "dev"
      

    因此,您基本上可以执行以下操作之一:

    1. 添加 gregwar/captcha 根目录中的依赖关系 组合器.json (你的Laravel项目之一)
    2. 添加 "minimum-stability": "dev" 到你的根 组合器.json .

    我建议选择第二个选项。如果这样做,您可能还需要添加 prefer-stable flag ,以确保 全部的 软件包以不稳定的版本下载:

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