在composer.json
我有
"require": {
. . .
"unisharp/laravel-filemanager": "~1.8"
}
目前,最新版本为v1.8.2.2,运行composer update
命令后,我将其安装在我的localhost项目中(一切正常)。
我已将(git push origin master
)从localhost推送到Bitbucket上的远程仓库,并通过SSH连接到Web服务器并从远程仓库克隆(git clone ...
)。
现在,当我运行composer update
(在网络服务器上)时,它会安装 v1.8.0 ,其中有一些错误。在那之后,当我再次尝试运行composer update
时 - 我得到:
Nothing to install or update
...但它仍然 v1.8.0 (不是 v1.8.2.2 ,就像它在localhost上一样)。
所以,我在本地主机和实时服务器上使用相同的composer.json项目,但由于某种原因,localhost有最新版本的软件包,而实时版本的旧版本有bug和composer update
没有更新它。
你知道为什么会这样吗?我该如何解决呢?
答案 0 :(得分:5)
您应该在本地运行composer update
。这将使用您已安装的所有软件包的版本更新composer.lock
。您应该将composer.lock
文件提交给版本控制。
在您的服务器上,一旦您更新了文件,就应该运行composer install
,以便Composer可以更新其依赖项以匹配composer.lock
文件中指定的依赖项。
答案 1 :(得分:-1)
如果知道要更新的软件包,则可以指定它,该软件包将升级到最新版本。只需在全球范围内要求该软件包,它将像魅力一样发挥作用。
composer global require laravel/installer