[英]`composer update` doesn't update to the latest version
在我的composer.json
我有
"require": {
. . .
"unisharp/laravel-filemanager": "~1.8"
}
目前,最新版本是v1.8.2.2 ,在運行composer update
命令后,我將它安裝在我的本地主機項目上(一切正常)。
我已將( git push origin master
)從本地主機推送到 Bitbucket 上的遠程倉庫,並通過 SSH 連接到 web 服務器並從該遠程倉庫克隆( git clone...
)。
現在,當我運行composer update
(在 web 服務器上)時 - 它安裝了 v1.8.0 ,它有一些錯誤。 之后,當我再次嘗試運行composer update
- 我得到:
Nothing to install or update
...但它仍然是v1.8.0 (不像在本地主機上那樣是v1.8.2.2 )。
因此,我在本地主機和實時服務器上有相同的 composer.json 項目,但由於某種原因,本地主機具有最新版本的 package,而實時版本具有帶有錯誤的舊版本, composer update
不會更新它。
你知道為什么會這樣嗎?我該如何解決?
您應該在本地運行composer update
。 這將使用您已安裝的所有軟件包的版本更新composer.lock
。 您應該將您的composer.lock
文件提交到您的版本控制。
在您的服務器上,一旦您更新了文件,您就應該運行composer install
以便 Composer 可以更新其依賴項以匹配您在composer.lock
文件中指定的依賴項。
我只花了兩個小時調試這個。 原來問題是在 composer.json 文件中有一個“版本”標簽。
當那里有版本標簽時,該版本將優先於您應用的任何 git 標簽版本。
如果您知道要更新的軟件包,您可以指定它,軟件包將升級到最新版本。 只需在全局范圍內需要該包,它就會像魅力一樣工作。
composer global require laravel/installer
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.