2017-02-17 52 views
1

我的作曲者突然停止工作。我甚至没有增加新的包装,只是想检查,如果有任何更新:我发现迄今建议更新作曲家和检查composer.json作曲者错误: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]... 

所有的解决方案,但应该不会NU什么错在那里:

{ 
    "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:当然,我已经chkcked thisthis,但这些都是无关的问题。

+0

有没有可能您的composer.lock文件包含〜2.0引用? –

+1

@JoelHinz锁定文件应该覆盖'更新'是不是?任何可能出现您的要求包含“〜2”的要求? –

+0

没有锁文件,我已经删除它。但是,一个软件包的依赖可能会存在。不知道如何检查,但。 – Peon

回答

3

编辑:

问题是固定在作曲家-资产插件的[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有一定的依赖形成的IES(在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库中的错误还是composer资产插件中的错误。

作曲家文档说〜2是一个有效的版本号,但我不知道它是否应该用于比较,如“>〜2”(在我的操作中,这根本没有意义.. )

+0

这听起来是正确的,但我在哪里可以找到(或创建)bower.json?我无法找到和输入像“”jquery“:”2 - 3“,”无处:/ PS:到目前为止我测试过,这只发生在我的Windows DEV系统。它在Ubuntu测试和生产服务器上工作得很好。 – Peon

+0

我刚刚更新了我的答案 –