laravel - 使用 composer create-project 创建新的 Laravel 项目失败
问题描述
我正在尝试创建一个新的 Laravel 项目以在 Homestead 中使用,因为我过去曾多次成功,并已发出以下命令:
composer create-project --prefer-dist laravel/laravel test
但不幸的是,它失败了Composer could not find a composer.json file in /home/vagrant/code/test...
,并将“测试”文件夹留空。
完整的输出在这里:
1/2: http://repo.packagist.org/p/provider-latest$d0bd0b2315439b65010ddf266ff3cd834b7f92edb850d5dd1f8a40c44586751f.json
2/2: http://repo.packagist.org/p/provider-2019-04$0835fd3847a1c8f8d46ee6dd6da638ec6e9846bf1dce10d9b2f10a0e953bbd04.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-04$0835fd3847a1c8f8d46ee6dd6da638ec6e9846bf1dce10d9b2f10a0e953bbd04.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(然后由于此处描述的奇怪行为而降级到 v8.0.1 )。上面报告的创建项目问题同时使用 Homestead v9.0.1 和 v8.0.1。
更新
我尝试将一个空的 composer.json 文件添加到“test”文件夹,但这会导致"./composer.json" does not contain valid JSON
错误。
我什至从laravel/laravel 项目中复制了 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
哪个不好(因为它为用户、组和其他人提供读/写/执行权限)
只需 ssh 进入您的 Homestead 机器,运行composer create-project --prefer-dist laravel/laravel test
并稍后运行php artisan package:discover
,您应该避免所有这些麻烦。
推荐阅读
- pandas - 添加具有功能的新列
- neo4j - Neo4j - 需要提醒哪些指标?
- keycloak - 如何在 Keycloak 中为客户端属性创建映射器
- flutter - // vs /// vs # 用于在 dart 中进行注释,有什么区别?
- testing - 单元测试没有覆盖
- excel - 用于更改选项卡名称的 VBA/宏脚本
- c - c: 函数调用时主函数停止运行
- java - `NativeQuery` 的 Hibernate 升级 5.4 旧式查询参数('?')
- javascript - 无法设置属性 href 未定义 - 在 html onchange 事件触发 javascript 之前未创建 iFrame
- ubuntu - Jenkins GUI 工作了几秒钟然后连接被拒绝