在Mac下使用laravel-intsaller產生新專案卻沒有vendor資料夾的問題解決

>> 2018年7月3日 星期二

摘要:
本文主要說明如何處理在Mac環境中,使用laravel-installer快速建立新專案時,會出現:sh: composer: command not found 的錯誤,並且新產生的專案資料夾中沒有vendor以及其他所需的元件等問題。
本文非laravel

前言:
Laravel要產生一個新專案,有兩種方式:
  1. 使用 composer create-project 的方式產生新專案的skeleton。
  2. 使用 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新手,若有什麼錯誤煩請不吝指正。謝謝!
參考資料:



About This Blog

程式碼標示

  © Free Blogger Templates Joy by Ourblogtemplates.com 2008

Back to TOP