使用 composer create-project 创建新的 Laravel 项目失败

Creating new Laravel project fails when using composer create-project

我正在尝试创建一个新的 Laravel 项目以供在 Homestead 中使用,因为我过去曾多次成功,并发出了以下命令:

composer create-project --prefer-dist laravel/laravel test

但不幸的是它失败了 Composer could not find a composer.json file in /home/vagrant/code/test... 并使 "test" 文件夹为空。

完整输出在这里:

1/2:        http://repo.packagist.org/p/provider-latest$d0bd0b2315439b65010ddf266ff3cd834b7f92edb850d5dd1f8a40c44586751f.json
2/2:        http://repo.packagist.org/p/provider-2019-0435fd3847a1c8f8d46ee6dd6da638ec6e9846bf1dce10d9b2f10a0e953bbd04.json
Finished: success: 2, skipped: 0, failure: 0, total: 2
1/2:        http://repo.packagist.org/p/provider-latest$d0bd0b2315439b65010ddf266ff3cd834b7f92edb850d5dd1f8a40c44586751f.json
2/2:        http://repo.packagist.org/p/provider-2019-0435fd3847a1c8f8d46ee6dd6da638ec6e9846bf1dce10d9b2f10a0e953bbd04.json
Finished: success: 2, skipped: 0, failure: 0, total: 2
Installing laravel/laravel (v5.8.17)
  - Installing laravel/laravel (v5.8.17): Loading from cache
Created project in test

  [InvalidArgumentException]                                                                              
  Composer could not find a composer.json file in /home/vagrant/code/test                                 
  To initialize a project, please create a composer.json file as described in the https://getcomposer.or  
  g/ "Getting Started" section                                                                            

create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [<package>] [<directory>] [<version>]

一些上下文:我最近将我的 Homestead vagrant box 更新到 v8.0.0,将 Homestead 源代码更新到 v9.0.1(然后由于 here 所述的奇怪行为而降级到 v8.0.1)。使用 Homestead v9.0.1 和 v8.0.1 都会出现上面报告的创建项目问题。

更新

我尝试将一个空的 composer.json 文件添加到 "test" 文件夹,但这导致了 "./composer.json" does not contain valid JSON 错误。

我什至从 laravel/laravel project 复制到 composer.json 文件中,但这会导致 Could not scan for classes inside "database/seeds" which does not appear to be a file nor a folder 运行 时间异常(这是正确的,因为 "test"文件夹仅包含一个"vendor"文件夹、一个composer.json文件和一个composer.lock文件)。

这几天我一直在兜圈子,所以如果有任何帮助,我们将不胜感激。

原来是权限问题,太好了

我所做的,我不使用 Homestead,但 Docker(虽然很相似)是,我不 运行 Composer 命令,也不 Laravel 来自主机,但来自虚拟机内部。

这样你就不必 sudo chmod -R a+rwx /home/vagrant/code/test 这很糟糕(因为它给了用户、组和其他人 read/write/execute 权限)

只需通过 ssh 进入您的 Homestead 机器,运行 composer create-project --prefer-dist laravel/laravel test 和更高版本 php artisan package:discover,您应该避免所有这些麻烦。