Laravel 编写器失败,包需要在require dev中使用另一个包

Laravel 编写器失败,包需要在require dev中使用另一个包,laravel,laravel-4,composer-php,packages,Laravel,Laravel 4,Composer Php,Packages,我正在用Laravel 4开发一个应用程序,我必须为它开发一个包,我的包(我们称之为xPAckage)需要这个包vespakoen/菜单,正如您在github上看到的那样 我必须在中将其添加到xPackage composer.json require-dev 但问题是,运行composer安装应用程序不会安装其软件包的require dev内容,它只安装其软件包 require part or require-dev 它自己的 如果我把它放在xPAckage的require部

我正在用Laravel 4开发一个应用程序,我必须为它开发一个包,我的包(我们称之为xPAckage)需要这个包vespakoen/菜单,正如您在github上看到的那样 我必须在中将其添加到xPackage composer.json

      require-dev
但问题是,运行composer安装应用程序不会安装其软件包的require dev内容,它只安装其软件包

require part or require-dev 
它自己的

如果我把它放在xPAckage的require部分,在运行composer更新时会出现以下错误

 - The package is not available in a stable-enough version according to your min
  imum-stability setting
我应该如何解决这个问题

编辑:(11月23日) xPackage composer.json如下所示:

{
"name": "packageName/xPcakge",
"description": "package description",
"keywords": ["xPAckage"],
"authors": [
    {
        "name": "user",
        "email": "email@domain.net"
    }
],
"require": {
    "php": ">=5.4.0",
    "zofe/rapyd": "1.3.*",       
    "vespakoen/menu": "dev-master"   
},
   "autoload": {
    "classmap": [
        "src/controllers",
        "src/views",
        "src/models"
    ]
 }
}
这是应用程序的composer.json文件

 {
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
    "laravel/framework": "4.2.*"
},
 "require-dev": {
    "packageName/xPcakge" : "dev-master"                   
},
"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ]
},
"scripts": {
    "post-install-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-update-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ]
},
"config": {
    "preferred-install": "dist"
 }
}

请查看此处并尝试一些不同的版本:


例如:“vespakoen/menu”:“2.0.15”

看看这里,尝试一些不同的版本:


例如:“vespakoen/menu”:“2.0.15”

您的软件包
packageName/xPackage
需要
vespakoen/menu
按分支名称(
dev master
)。当composer导入该包时,它将其视为带有
@dev
标志。因此,
packageName/xPackage
与稳定性级别
dev
有依赖关系。当composer尝试导入
xPackage
时,它也会加载其所有依赖项。但是,当它点击
vespakoen/menu
时,它会看到它有一个
dev
稳定性级别。您的应用程序没有明确设置稳定性,因此其级别为
stable
。这两个层次相互冲突。你可以:

  • 将应用程序的稳定性级别降低到dev,不推荐使用。 这将允许composer将任何开发人员级别的软件包安装到您的应用程序中 应用程序。在应用程序的
    composer.json
    中:

    {
    “最小稳定性”:“dev”
    }
    
  • 使用稳定版本的
    vespakoen/menu
    。请转到相应的,然后选择标记的版本。这是首选方法。在包的
    composer.json
    中:

    {
    “要求”:{
    “vespakoen/menu”:“~2.0”
    }
    }
    
  • 在应用程序中明确要求
    vespakoen/菜单
    。这将告诉composer覆盖此情况下的默认最小稳定性。在应用程序的
    composer.json
    中:

    {
    “要求”:{
    “vespakoen/菜单”:“开发主机”
    }
    }
    

您的软件包
packageName/xPackage
需要分支名称(
dev master
)的
vespakoen/menu
)。当composer导入该包时,它将其视为带有
@dev
标志。因此,
packageName/xPackage
与稳定性级别
dev
有依赖关系。当composer尝试导入
xPackage
时,它也会加载其所有依赖项。但是,当它点击
vespakoen/menu
时,它会看到它有一个
dev
稳定性级别。您的应用程序没有明确设置稳定性,因此其级别为
stable
。这两个层次相互冲突。你可以:

  • 将应用程序的稳定性级别降低到dev,不推荐使用。 这将允许composer将任何开发人员级别的软件包安装到您的应用程序中 应用程序。在应用程序的
    composer.json
    中:

    {
    “最小稳定性”:“dev”
    }
    
  • 使用稳定版本的
    vespakoen/menu
    。请转到相应的,然后选择标记的版本。这是首选方法。在包的
    composer.json
    中:

    {
    “要求”:{
    “vespakoen/menu”:“~2.0”
    }
    }
    
  • 在应用程序中明确要求
    vespakoen/菜单
    。这将告诉composer覆盖此情况下的默认最小稳定性。在应用程序的
    composer.json
    中:

    {
    “要求”:{
    “vespakoen/菜单”:“开发主机”
    }
    }
    

    • 永远不要要求分支!始终需要版本,最好是依赖项的版本范围

      不幸的是,许多安装说明采用了简单的方式,并建议要求“dev master”作为其版本。这是错误的

      如果项目宣布根据语义版本控制发布新版本,则使用tilde操作符要求满足所需功能的最低版本,如
      ~2.1
      。这将告诉您至少需要版本2.1.0,但只要不引入不兼容的更改(这将是一个新的主要版本3.0.0),任何更好的版本都可以


      如果项目没有宣布类似的内容,那么如果您有证据证明项目在过去破坏了“兼容”版本,并且没有纠正这一点,那么
      2.1.*
      的版本要求可能是正确的。这种情况不太可能发生,而且更糟糕,因为你强迫自己的用户使用特定版本的依赖项,而无法免费升级。

      永远不需要分支!始终需要版本,最好是依赖项的版本范围

      不幸的是,许多安装说明采用了简单的方式,并建议要求“dev master”作为其版本。这是错误的

      如果项目宣布根据语义版本控制发布新版本,则使用tilde操作符要求满足所需功能的最低版本,如
      ~2.1
      。这将告诉您至少需要版本2.1.0,但只要不引入不兼容的更改(这将是一个新的主要版本3.0.0),任何更好的版本都可以

      如果项目没有宣布类似的内容,那么如果您有证据证明项目在过去破坏了“兼容”版本,并且没有纠正这一点,那么
      2.1.*
      的版本要求可能是正确的。这种情况不太可能发生,而且更糟糕