作曲家:所需的软件包,它们的最低稳定性不同


68

我有一个用于laravel安装的composer文件,其中包含以下composer.json文件:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "laravel/framework": "4.1.*"
    },
    "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"
    },
    "minimum-stability": "stable"
}

我正在尝试添加捆绑服务。在岗哨的网站上说可以通过将以下内容添加到我的composer.json文件中来安装它:

{
    "require": {
        "cartalyst/sentry": "2.0.*"
    },
    "minimum-stability": "dev"
}

我试图在当前的laravel的末尾添加新的json对象,如下所示:

...
},
{
    "require": {
        "cartalyst/sentry": "2.0.*"
    },
    "minimum-stability": "dev"
}

当我运行composer update命令以加载新程序包时,出现一条错误消息,提示新对象添加无效的json。

如果我添加cartalyst/sentry到现有require对象,则它将找不到哨兵包,因为现有要求的最小稳定性值为stable

有没有一种方法可以在具有最小稳定性设置的单独的require对象中指定哨兵包裹dev

Answers:


138

答案就是添加 @dev

{
    "require": {
        "cartalyst/sentry": "2.0.*@dev"
    },
}

你可以阅读 在此处有关最低稳定性设置的更多信息

一种替代方法是将最小稳定性设置为dev,但告诉作曲家您希望尽可能使用稳定度:

"minimum-stability": "dev",
"prefer-stable" : true

这基本上意味着它将一直使用稳定的UNLESS,除非没有安装稳定依赖的方法,因此将使用dev。


我对symfony框架有另一个限制,即限制了允许的最高版本,"symfony": { "allow-contrib": false, "require": "4.2.*"因此,如果我在未删除composer.lock的情况下发布了您的设置/配置,并保留了这些设置,那么这些设置将被还原,因此可能有必要删除composer.lock或发出作曲家更新命令,尽管可能会有其他不良影响
FantomX1

作为旁注,以防万一有人想知道从CLI的角度来看会是什么样子:必须致电composer require cartalyst/sentry:2.0.*@dev
jtompl

3

您还可以使用其它稳定的水平,比如alphabeta与版本结合选择

例子

使用插入符号运算符-版本2的最高允许beta:

"cartalyst/sentry": "^2@beta"

任何允许Alpha的版本

"cartalyst/sentry": "*@alpha"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.