2017-07-14 61 views
0

我在作曲家中使用本地库文件包,使用路径,他们仍在开发中。事情是,安装它时给我一个错误。作曲家 - 在依赖关系的开发中安装本地包错误

错误消息:

加载作曲家仓库与包裹信息
更新依赖(包括要求-DEV)
你的要求不能被解析到一个安装包集合。

问题1:对于供应商/ packageB *

  • 安装请求 - 由供应商>令人满意/ packageB [DEV-主]。
  • vendor/packageB dev-master需要vendor/packageA dev-master - >没有找到匹配的软件包。

可能的原因:

  • 包名称
  • 包装中的错字,根据您的最低稳定性设置不提供稳定,充足的版本

所以要解释我有什么,请考虑这一点。

第一个软件包安装称为packageA的依赖项。每件事情都按预期工作。 见下面的composer.json文件的提取物:

[ 
    "name": "vendor/packageB", 
    "repositories": [ 
     { 
      "type": "path", 
      "url": "/vendor/packageA/" 
     } 
    ], 
    "require": { 
     "vendor/packageA": "*" 
    }, 
    "minimum-stability": "dev" 
] 

和第二封装,即我想安装packageB及其依赖(在这种情况下程序包A)。这是它在这里给出一个错误。 请参阅下面的composer.json文件的摘录:

[ 
    "name": "vendor/packageC", 
     "repositories": [ 
      { 
       "type": "path", 
       "url": "/vendor/packageB/" 
      } 
     ], 
     "require": { 
      "vendor/packageB": "*" 
     }, 
     "minimum-stability": "dev" 
] 

大概是不可能的作曲家使用本地发展的依赖,这是不是在那一刻我很清楚。

所以,我的疑惑是,这是事做:

  • “最低稳定性”,可能是因为这是所有的“开发”?
  • 或因为我正在使用本地软件包(不包括packagist或github)?
  • 或者是别的东西(除了错字:))?

我已经设法安装它,当我把packageA,也作为packageB的依赖。这是我发现它的唯一方法。

感谢您的帮助!

+0

是,上述完整的错误消息?我认为这是packageC中缺少packageA的存储库。也许作曲家跳过这个存储库部分的依赖关系,因为这可能会导致安全问题 –

+0

我已更新错误消息,所以现在这是完整的错误消息@NormanM。 – user38561

回答

0

此问题在作曲家常见问题解答中有所描述。 https://getcomposer.org/doc/faqs/why-can't-composer-load-repositories-recursively。MD

在你的情况下,这意味着,中packageC的composer.json必须包括信息在哪里可以找到为packageA库:

[ 
"name": "vendor/packageC", 
    "repositories": [ 
     { 
      "type": "path", 
      "url": "/vendor/packageB/" 
     }, 
     { 
      "type": "path", 
      "url": "/vendor/packageA/" 
     } 
    ], 
    "require": { 
     "vendor/packageB": "*" 
    }, 
    "minimum-stability": "dev" 
] 
+0

谢谢,我想这是目前唯一的方法! – user38561