[英]Why isn't bin/console script found nor recreated in “bin” after composer install?
我改變了我的 composer.json 突然間,當我這樣做時
rm -rf vendor/* && rm -rf bin/* && composer update
我在進程結束時收到錯誤消息,因為在文件夾bin
中找不到 Symfony console
。 當我從另一個項目手動將其復制到那里時,它可以工作,但這不是解決方案。
錯誤信息如下:
....
- Installing symfony/test-pack (v1.0.6): Loading from cache
- Installing symfony/web-server-bundle (v4.3.6): Loading from cache
Generating autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
Executing script cache:clear [KO]
[KO]
Script cache:clear returned with error code 1
!! Could not open input file: ./bin/console
!!
Script @auto-scripts was called via post-update-cmd
錯誤很明顯,因為 bin 文件夾確實包含指向其他腳本加載的符號鏈接,但不包含控制台腳本本身。
我嘗試清除作曲家緩存,但沒有任何區別。
如果我創建一個全新的空文件夾並將composer.json
文件復制到那里並運行composer install
,一切都很好, console
腳本在bin
文件夾中,它應該在哪里。
有什么區別?
當我稍后自動運行它以進行自動部署時,我如何確定控制台會在那里?
首先,您不應該刪除您的bin/console
腳本。 這是您的應用程序的一部分,它相當於public/index.php
但作為控制台入口點。
最有可能的是,該文件應該保存在您的源代碼存儲庫中。
因此,在部署時保證該文件存在的最佳方法是:不要刪除它,它是源代碼的一部分,應該保留。
該文件是在install
過程中在一個空文件夾上創建的,因為在install
過程中會執行 flex 配方,原因有兩個:
bin
目錄以重新創建它,但不會覆蓋現有目錄。 (因此,如果您將此目錄及其內容保留在您的存儲庫中,那么當您將項目部署到生產環境時,它不會被覆蓋)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.