【问题标题】:`composer update` doesn't update to the latest version`composer update` 不会更新到最新版本
【发布时间】:2018-04-16 19:39:48
【问题描述】:

在我的composer.json 我有

"require": {
    . . .
    "unisharp/laravel-filemanager": "~1.8"
}

目前,最新版本是v1.8.2.2,在运行composer update 命令后,我将它安装在我的本地主机项目中(一切正常)。

我已将 (git push origin master) 从 localhost 推送到 Bitbucket 上的远程仓库,并通过 SSH 连接到 Web 服务器并从该远程仓库克隆 (git clone ...)。

现在,当我运行 composer update(在网络服务器上)时,它会安装 v1.8.0,它有一些 bug。之后,当我再次尝试运行 composer update - 我得到:

Nothing to install or update

...但它仍然是 v1.8.0(不像在本地主机上的 v1.8.2.2)。

所以,我在我的本地主机和实时服务器上有相同的 composer.json 项目,但由于某种原因,本地主机有最新版本的包,而实时版本有旧版本的错误,composer update 没有不要更新它。

你知道为什么会这样吗?我该如何解决?

【问题讨论】:

  • 您应该在本地运行 composer update 并将您的 composer.lock 文件提交给您的版本控制。然后,您应该在您的服务器上运行 composer install 以提取 composer.lock 文件中详细说明的依赖项。
  • 跑完composer update,你跑php artisan vendor:publish了吗?
  • php artisan vendor:publish 将如何更新包版本?
  • @Jonathon 我犯了一个错误,因为我没有先运行install,而是update(看起来是composer.json,而不是composer.lock)。现在当我第一次做composer install 时 - 一切都很好。如果可以 - 将您的评论发布为 answer 以便我查看。
  • 没问题,现在添加。

标签: php git laravel composer-php


【解决方案1】:

我只花了两个小时调试这个。原来问题在于 composer.json 文件中有一个“版本”标签。

当那里有版本标签时,该版本将优先于您应用的任何 git 标签版本。

【讨论】:

    【解决方案2】:

    您应该在本地运行composer update。这将使用您已安装的所有软件包的版本更新composer.lock。您应该将您的 composer.lock 文件提交给您的版本控制。

    在您的服务器上,一旦您更新了文件,您应该运行 composer install,以便 Composer 可以更新其依赖项以匹配您在 composer.lock 文件中指定的那些。

    【讨论】:

      猜你喜欢
      • 2016-02-26
      • 2023-04-05
      • 2013-10-23
      • 1970-01-01
      • 2017-10-03
      • 2020-09-16
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多