`composer update`没有更新到最新版本

Per*_*ika 3 php git laravel composer-php

在我的composer.json

"require": {
    . . .
    "unisharp/laravel-filemanager": "~1.8"
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

Nothing to install or update
Run Code Online (Sandbox Code Playgroud)

...但它仍然是v1.8.0(不像v1.8.2.2那样在localhost上).

所以,我在本地主机和实时服务器上使用相同的composer.json相同的项目,但由于某种原因,localhost有最新版本的软件包,而实时版本的旧版本有bug并且composer update不更新它.

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

Jon*_*hon 6

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

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