新项目跑不起来主因是PHP版本不兼容、包名错误或命令格式不当:如laravel/laravel误写为laravel/framework,未加引号导致版本通配符失效,或目录非空未加--remove-vcs。

直接用 composer create-project 能省掉手动 composer init、require、改 autoload、跑脚本这些步骤,但前提是——你得选对包、写对命令、看清环境约束,否则生成的项目大概率起不来。
为什么新项目跑不起来?先盯住这三行输出
报错往往藏在命令执行末尾几行,而不是开头。重点看:
-
[RuntimeException] Package laravel/laravel has a PHP requirement incompatible with your PHP version:不是 Composer 坏了,是你 PHP 版本低于目标包要求(比如 Laravel 11 要 PHP 8.2+,你本地是 8.1) -
Could not find package laravel/laravel:包名写错了,常见误写成laravel/framework(这是库,不是项目模板),正确应为laravel/laravel - 生成目录里没有
vendor/autoload.php:大概率加了--no-install但没手动运行composer install
指定版本必须加引号,否则 shell 会吃掉通配符
写 composer create-project laravel/laravel myapp 10.* 在大多数 shell 下会报错或装错版本,因为 * 被提前展开。正确写法是:
composer create-project laravel/laravel myapp "10.*"composer create-project symfony/skeleton api "6.4.*"composer create-project yiisoft/yii2-app-basic app "2.0.48"
开发分支同理:"dev-main"、"dev-develop" 都要加双引号。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
当前目录安装别漏掉那个点,且目录必须为空
想把项目直接建在当前文件夹(比如已有 Git 仓库想初始化 Composer 结构),命令末尾必须是 .:
-
composer create-project laravel/laravel .—— 正确 -
composer create-project laravel/laravel—— 报错:Destination directory exists -
composer create-project laravel/laravel . --no-dev—— 可以,但注意某些模板的初始化脚本依赖phpunit,加了--no-dev反而失败
如果当前目录非空(哪怕只有 .git 或 README.md),命令会拒绝执行;加 --remove-vcs 可强制清理 .git 后继续,但仅限你确定不需要保留原 VCS 记录时用。
网络卡住或下载失败?优先换镜像和强制 dist 模式
国内常见卡在 Loading composer repositories 或 Failed to download ext-gd,本质是源或扩展问题:
- 换阿里云镜像:
composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/ - 跳过 git 克隆(防 SSH 权限/网络不通):
--prefer-dist强制走 zip 包 - 仍失败?加
-vvv看完整日志,重点查最后一段是否提示ext-xxx is missing,对应启用 PHP 扩展(如gd、mbstring、openssl)
真正容易被忽略的是:有些模板(比如早期 Laravel 版本)在 --prefer-dist 下会丢掉 Providers 目录,导致 Class App\Providers\AppServiceProvider does not exist,这时得换 --prefer-source 重试。

















