在Mac下使用laravel-intsaller產生新專案卻沒有vendor資料夾的問題解決
>> 2018年7月3日 星期二
摘要:
本文主要說明如何處理在Mac環境中,使用laravel-installer快速建立新專案時,會出現:sh: composer: command not found 的錯誤,並且新產生的專案資料夾中沒有vendor以及其他所需的元件等問題。
本文非laravel
前言:
Laravel要產生一個新專案,有兩種方式:
- 使用 composer create-project 的方式產生新專案的skeleton。
- 使用 laravel new 指令產生新專案的skeleton。
第一種方式因所有的檔案都需要重抓下來,速度較慢。第二種方式則是先安裝了laravel-installer,並且將部分的檔案已經先放在電腦中,因此速度較快。
詳細操作方式請參考其他教學,在此不贅述。
問題點:
但是,當我執行 laravel new new_project 時,發現顯示訊息如下:
$ laravel new lavetest2
Crafting application...
sh: composer: command not found
Application ready! Build something amazing.
很快就執行完畢,但是資料夾裡面卻是缺少了vendor以及.env檔案。
解決方式:
解決方法有兩個,一個是暫時性針對該專案解決,另一個是永久性,以後執行laravel new都不會有問題的方法。
・針對專案解決
由於專案資料夾中已經有composer.josn以及composer.lock檔案,因此只要執行:
composer update
執行完就會把所有相關的元件都下載好。
接下來執行:
php artisan key:generate
產生新的APP_KEY之後,就可以正常了。
・永久性解決
根據訊息顯示,是因為沒有找到composer指令。
但是我之前已經在 ~/.bash_profile 檔案中設定好 alias composer 了,而且都可以正常執行composer global require "laravel/installer" 呢!
後來發現,應該是執行new的過程,會呼叫到 /usr/local/bin/composer 指令,
但是之前安裝時,是直接將 composer.phar 複製進去,因此呼叫composer時會找不到指令。
解決方法:
將/usr/local/bin/composer.phar 改成 /usr/local/bin/composer
記得也要將~/.bash_profile 中 alias composer="php /usr/local/bin/composer” 修改
這樣重新執行之後,就沒有問題了。
附註:
- 本人為laravel新手,若有什麼錯誤煩請不吝指正。謝謝!
參考資料:
- Laracasts. sh: composer: command not found.