Composer:所需的包装具有不同的最小稳定性水平
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Composer:所需的包装具有不同的最小稳定性水平相关的知识,希望对你有一定的参考价值。
我有一个用于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对象中指定iftry包,其最小稳定性设置为dev
?
答案是添加@dev
{
"require": {
"cartalyst/sentry": "2.0.*@dev"
},
}
你可以阅读more about minimum stability settings here。
另一种方法是将您的最小稳定性设置为开发,但告诉作曲家您希望尽可能使用稳定:
"minimum-stability": "dev",
"prefer-stable" : true
这基本上意味着它将始终使用稳定的UNLESS无法安装稳定的依赖项,因此使用dev。
您还可以使用其他levels of stability,例如alpha
,beta
和版本选择器。
Examples
使用插入符号运算符 - 最大版本2允许beta:
"cartalyst/sentry": "^2@beta"
任何允许alpha的版本
"cartalyst/sentry": "*@alpha"
以上是关于Composer:所需的包装具有不同的最小稳定性水平的主要内容,如果未能解决你的问题,请参考以下文章
尝试从 toran 获取所需的私有库时的 Composer 警告
如何让 /bin/bash 在 Composer 中运行所需的 php 版本? [复制]