UnexpectedValueException 尝试安装 laravelcollective 时无法解析版本约束

UnexpectedValueException Could not parse version constraint when trying to instal laravelcollective

我是 laravel 的新手,我正在尝试安装 laravelcollective。我只是在关注文档 here 并且我正在从我的项目目录中使用它:

composer require "laravelcollective/html":"^5.4.0"

不幸的是,在我按下 enter 后,我立即收到以下错误:

[UnexpectedValueException] Could not parse version constraint :5.4.0: Invalid version string ":5.4.0"

我只是不知道如何解决这个问题。我在 google 上找不到太多东西,再加上我对 laravel 缺乏经验,这让我陷入困境。

有人可以帮忙吗?

您可以在 composer.json 中手动添加,然后使用 composer update

只需在 "laravel/framework":"5.4.*",

的行下添加 "laravelcollective/html": "5.4.*",

像这样:

"require": {
        "php": ">=7.0.0",
        "fideloper/proxy": "~3.3",
        "laravel/framework": "5.4.*",
        "laravelcollective/html": "5.4.*", <-- Add this row
        "laravel/tinker": "~1.0"
    },

如果你不想更新所有你的依赖项,你永远不应该运行composer update没有任何参数。

在您的情况下,问题可能是 ^ 字符在参数传递给 Composer 之前已被您的 shell 解释。这可能可以通过使用单引号而不是双引号来解决:

composer require 'laravelcollective/html:^5.4.0'

当您按照上面评论之一的建议使用 5.4.* 约束时,您在冒号后添加了 space,这导致 Composer 将版本约束解释为包名称。正确的命令应该是这样的:

composer require "laravelcollective/html":"5.4.*"
composer require "laravelcollective/html ^5.4.0"

对我有用!

就我而言,我使用的是 Laravel 5.7,但在尝试安装 Laravel 集合时一直出现错误。

您可以在不指定任何版本的情况下使用此命令:

composer require 'laravelcollective/html'

它对我有用。 :)