2017-02-17 10 views
1

Мой композитор внезапно прекратил работать. Я даже не добавлять новые пакеты, просто хотел проверить, есть ли обновления:Ошибка композитора: 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]... 

Все решения я нашел до сих пор предложенные обновить композитор и проверить composer.json, но ничего плохого не должно ню в нем:

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

Как вы можете видеть, там нет ничего особенного.

PS: Конечно, я уже chkecked this и this, но это не связанные проблемы.

+0

Есть ли вероятность, что ваш файл composer.lock содержит ссылку ~ 2.0? –

+1

@JoelHinz файл блокировки должен быть перезаписан на 'update', не так ли? Любая возможность того, что пакет ваших требований требует '~ 2'? –

+0

Нет файла блокировки, я уже удалил его. Но зависимость пакета скорее всего. Не знаю, как это проверить. – Peon

ответ

3

EDIT:

Проблема исправлена ​​в версии [email protected] с композитором-актив-плагин.

Он может быть установлен с помощью:

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

Смотрите также: https://github.com/fxpio/composer-asset-plugin/issues/270


Я разыскал вашу проблему с помощью подробного вывода композитора.

Проблема изначально вызвана требованием

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

В пределах этого требуются некоторые пакеты Бауэр (для этого я предполагаю, что вы установили Composer Asset Plugin -при крайней мере, я должен был сделать это, как указано в документации по Laravel-fullcalendar -scheduler)

Один из этих Бауэр пакетов, например:

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

беседка fullcalender-schedulare имеет некоторый dependenc х годов (в bower.json):

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

Используемый плагин композитор активов переводит зависимость Jquery к:

">=~2,<4.0" 

Это, наконец, приводит к ошибке в модуле https://github.com/composer/semver композитора, который вызывает ошибку композитор/semver/src/VersionParser.php: 485

Для тестирования я вручную изменил версию на> = 2.0, которая работает.

В настоящее время я не исследовал, что это ошибка в сборнике/semver lib или ошибка в плагине компонента композитора.

Композитор сообщает, что ~ 2 является допустимым номером версии, но я не знаю, предполагается ли его использовать в сравнении, например, "> ~ 2" (в моем oppionion это не имеет никакого смысла. .)

+0

Это звучит правильно, но где я могу найти (или создать) bower.json? Я не могу найти и ввести как '' jquery ":" 2 - 3 ",' нигде:/PS: пока что я тестировал, что это происходит только в моей системе Windows DEV. Он отлично работает на тестовом и производственном сервере Ubuntu. – Peon

+0

Я только что обновил свой ответ –

 Смежные вопросы

  • Нет связанных вопросов^_^