簡體   English   中英

Laravel - 5.2.45 - 作曲家更新錯誤后 - Laravel 5.2 Trait 'Illuminate\\Foundation\\Auth\\AuthenticatesUsers' 未找到

[英]Laravel - 5.2.45 - After composer update error - laravel 5.2 Trait 'Illuminate\Foundation\Auth\AuthenticatesUsers' not found

Laravel 在本地主機上運行良好,我將所有代碼推送到存儲庫並在主服務器上進行拉取。 我錯誤地在服務器上運行了composer update而不是composer install 現在我的主服務器顯示錯誤:

FatalErrorException in AuthenticatesAndRegistersUsers.php line 7:
Trait 'Illuminate\Foundation\Auth\AuthenticatesUsers' not found

主服務器沒有任何權限,因此我無法修改或運行rm -rf類的命令並重新安裝所有內容。

我運行composer show並且本地和主服務器都顯示laravel/framework v5.2.45

我該怎么辦?

您可以從本地替換 composer.lock 文件並運行 composer install 命令。

來自https://getcomposer.org/doc/03-cli.md#install

如果當前目錄中有 composer.lock 文件,它將使用那里的確切版本而不是解析它們。 這可確保使用該庫的每個人都將獲得相同版本的依賴項。

我自己通過以下方法解決了它:

1) 備份了composer.json, composer.lock and vendor folder

2) 修改composer.json - 從 require 和 require-dev 中刪除所有包,運行composer update命令使我的本地供應商文件夾為空,然后我將composer.jsoncomposer.lock推送到服務器。

3)在服務器上運行 git pull 並運行composer update命令(它從服務器上的供應商文件夾中刪除了所有包)。

4)然后在本地機器上,我用我在步驟 1 中所做的備份替換了composer.json, composer.lock and vendor folder ,然后推送到服務器上(請注意我已經在 .gitignore 中添加了 vendor 文件夾,所以它沒有被推送,只有composer.jsoncomposer.lock文件被推送)。

5) 在服務器上使用 git pull 並運行composer update命令。 它再次安裝了所有具有適當依賴項的軟件包。

今天學到:永遠不要在生產或主服務器上運行composer update 通過運行composer update在本地機器上安裝軟件包,它將安裝所需的軟件包並更新composer.lock文件。 在服務器上推送composer.jsoncomposer.lock在服務器上拉取,然后在服務器上運行composer install

注意:即使在您的本地主機上,如果您不想破壞依賴關系,那么您可以運行composer require代替運行composer update例如composer require razorpay/razorpay:2.*這只會添加/更新此包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM