2017-02-17 3 views
1

Mein Komponist hörte plötzlich auf zu arbeiten. Ich habe nicht einmal neue Pakete hinzufügen, wollte nur überprüfen, ob es irgendwelche Updates:Composer-Fehler: UnexpectedValueException

PS C:\data\www\project.dev> composer self-update 
You are already using composer version 1.3.2 (stable channel). 

PS C:\data\www\project.dev> composer update 
> php artisan clear-compiled 
The compiled class file has been removed. 
Loading composer repositories with package information 
Updating dependencies (including require-dev) 

    [UnexpectedValueException] 
    Could not parse version constraint >=~2: Invalid version string "~2" 


update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock]... 

Alle Lösungen, die ich bisher vorgeschlagen gefunden Komponist zu aktualisieren und die composer.json zu überprüfen, aber es sollte nichts falsch nu dort:

{ 
    "name": "laravel/laravel", 
    "description": "The Laravel Framework.", 
    "keywords": ["framework", "laravel"], 
    "license": "MIT", 
    "type": "project", 
    "require": { 
     "php": ">=5.5.9", 
     "laravel/framework": "5.3.*", 
     "edofre/laravel-fullcalendar-scheduler": "^1.0" 
    }, 
    "require-dev": { 
     "fzaninotto/faker": "~1.4", 
     "mockery/mockery": "0.9.*", 
     "phpunit/phpunit": "5.0", 
     "symfony/css-selector": "2.8.*|3.0.*", 
     "symfony/dom-crawler": "2.8.*|3.0.*" 
    }, 
    "autoload": { 
     "classmap": [ 
      "database" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     } 
    }, 
    "autoload-dev": { 
     "classmap": [ 
      "tests/TestCase.php" 
     ] 
    }, 
    "scripts": { 
     "post-root-package-install": [ 
      "php -r \"copy('.env.example', '.env');\"" 
     ], 
     "post-create-project-cmd": [ 
      "php artisan key:generate" 
     ], 
     "post-install-cmd": [ 
      "php artisan clear-compiled", 
      "php artisan optimize" 
     ], 
     "pre-update-cmd": [ 
      "php artisan clear-compiled" 
     ], 
     "post-update-cmd": [ 
      "php artisan optimize" 
     ] 
    }, 
    "config": { 
     "preferred-install": "dist" 
    } 
} 

Wie Sie sehen können, gibt es nichts Besonderes darin.

PS: Natürlich habe ich bereits this und this chkecked, aber das sind nicht verwandte Probleme.

+0

Gibt es eine Chance, dass Ihre composer.lock Datei die ~ 2.0 Referenz enthält? –

+1

@JoelHinz die Sperrdatei sollte bei 'update' überschrieben werden, oder? Jede Möglichkeit, dass ein Paket Ihrer Anforderungen die '2' in seinem Bedarf hat? –

+0

Es gibt keine Sperrdatei, ich habe sie bereits gelöscht. Aber eine Abhängigkeit von einem Paket ist wahrscheinlich. Weiß nicht wie ich das überprüfen soll. – Peon

Antwort

3

EDIT:

Das Problem in der [email protected] Version der Komponisten-Asset-Plugin festgelegt ist. auch

composer global require fxp/composer-asset-plugin:[email protected] 

See:

Es kann über installiert werden https://github.com/fxpio/composer-asset-plugin/issues/270


ich Ihr Problem nach unten mit der ausführlichen Ausgabe des Komponisten verfolgt habe.

Das Problem zunächst durch die Forderung

"edofre/laravel-fullcalendar-scheduler": "^1.0" 

Innerhalb dieser einige Bower Pakete erforderlich sind (Hierfür installiert ich nehme an, Sie verursacht wird Composer Asset Plugin -mindestens ich dies in der Dokumentation von Laravel-fullcalendar wie gesagt zu tun hatte -scheduler)

Einer dieser Bower Pakete ist zum Beispiel:

"bower-asset/fullcalendar-scheduler": "v1.4.0" 

der Bower fullcalender-schedulare hat einige dependenc ies (in bower.json):

"dependencies": { 
    "jquery": "2 - 3", 
    "moment": "^2.9.0", 
    "fullcalendar": "~3.2.0" 
}, 

Der verwendete Komponist Asset-Plugin übersetzt die jquery Abhängigkeit:

">=~2,<4.0" 

Dies schließlich bewirkt, dass der Fehler in dem Komponisten Modul https://github.com/composer/semver die Komponist einen Fehler auslöst/semver/src/VersionParser.php: 485

Zum Testen habe ich die Version manuell auf> = 2.0 geändert, die funktioniert.

Ich habe derzeit nicht untersucht, ob dies ein Fehler in der Composer/semver lib oder ein Fehler im Composer Asset-Plugin ist.

Die Composer Dokumente sagen, dass ~ 2 ist eine gültige Versionsnummer, aber ich weiß nicht, ob es in Vergleichen wie "> ~ 2" verwendet werden soll (in meiner Opportunität macht das überhaupt keinen Sinn). .)

+0

Das klingt korrekt, aber wo finde ich (oder erstelle) die bower.json? Ich kann nicht finden und eingeben wie '' jquery ":" 2 - 3 ",' nirgendwo:/PS: Bisher habe ich getestet, dass dies nur auf meinem Windows DEV System auftritt. Es funktioniert gut auf Ubuntu Test und Produktionsserver. – Peon

+0

Ich habe gerade meine Antwort aktualisiert –

Verwandte Themen