Composer: Erforderliche Pakete mit unterschiedlicher Mindeststabilität

Lesezeit: 2 Minuten

Benutzer-Avatar
Chris Schmitz

Ich habe eine Composer-Datei für eine Laravel-Installation mit der folgenden composer.json-Datei:

{
    "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"
}

Ich versuche, das Paket für die Wache hinzuzufügen. Auf der Website von Sentry heißt es, ich kann es installieren, indem ich Folgendes zu meiner composer.json-Datei hinzufüge:

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

Ich habe versucht, das neue JSON-Objekt am Ende des aktuellen Laravel-Objekts wie folgt hinzuzufügen:

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

Wenn ich die laufe composer update Befehl zum Laden des neuen Pakets erhalte ich eine Fehlermeldung, die besagt, dass der neue Objektzusatz kein gültiger JSON ist.

Wenn ich das hinzufüge cartalyst/sentry zum Bestehenden require Objekt kann es das Sentry-Paket nicht finden, da die vorhandenen Anforderungen einen Mindeststabilitätswert von haben stable.

Gibt es eine Möglichkeit, das Sentry-Paket in einem separaten Anforderungsobjekt anzugeben, das die Mindeststabilitätseinstellung von hat dev?

Benutzer-Avatar
Laurenz

Die Antwort ist einfach hinzufügen @dev

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

Du kannst lesen mehr über minimale Stabilitätseinstellungen hier.

Eine Alternative besteht darin, Ihre Mindeststabilität auf dev zu setzen, aber Composer mitzuteilen, dass Sie nach Möglichkeit Stable verwenden möchten:

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

Dies bedeutet im Grunde, dass es immer Stable verwenden wird, ES SEI DENN, es gibt keine Möglichkeit, eine Stable-Abhängigkeit zu installieren und daher dev zu verwenden.

  • Ich hatte eine weitere Einschränkung des Symfony-Frameworks, die die höchste zulässige Version begrenzte "symfony": { "allow-contrib": false, "require": "4.2.*" Wenn ich also Ihre Einstellungen/Konfiguration ausgegeben habe, ohne dass composer.lock gelöscht wurde, wurden diese Einstellungen zurückgesetzt, sodass es möglicherweise erforderlich ist, die composer.lock zu löschen oder den Befehl composer update auszugeben, was jedoch möglicherweise zusätzliche unerwünschte Auswirkungen hat

    – FantomX1

    11. Juni 2020 um 10:02 Uhr

  • Als Randbemerkung für den Fall, dass sich jemand fragt, wie das aus CLI-Sicht aussehen wird: Man muss anrufen composer require cartalyst/sentry:2.0.*@dev .

    – jtompl

    7. Dezember 2020 um 20:30 Uhr


Sie können auch andere verwenden Ebenen der Stabilitätwie alpha, beta kombiniert mit Fassung Wähler.

Beispiele

Mit Caret-Operator – maximal Version 2, die Beta zulässt:

"cartalyst/sentry": "^[email protected]"

Jede Version, die Alpha erlaubt

"cartalyst/sentry": "*@alpha"

Aus der Komponistendokumentation:

Um jedoch verschiedene Stabilitäten zuzulassen, ohne sie auf der Einschränkungsebene zu erzwingen, können Sie Stabilitäts-Flags wie @ (z. B. @dev) verwenden, um Composer wissen zu lassen, dass ein bestimmtes Paket mit einer anderen Stabilität als Ihrer standardmäßigen Mindeststabilitätseinstellung installiert werden kann.

https://getcomposer.org/doc/articles/versions.md#stability-constraints

1345430cookie-checkComposer: Erforderliche Pakete mit unterschiedlicher Mindeststabilität

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy