laravel new 值得用,适合本地已配好 PHP+Composer 的全新项目,它通过预构建 PHAR 包实现快速、稳定初始化;但需避免用于指定小版本、禁用 Node.js 或 PHP 扩展不全等场景。

laravel new 值不值得用,取决于你是否需要「开箱即用的完整骨架」和「对环境有明确控制」。它不是万能方案,但对多数新项目来说,比直接 composer create-project 更省事、更稳定。
什么时候该用 laravel new
适合刚起步、不打算魔改初始结构、且本地已配好 PHP + Composer 的人。
- 项目是全新启动,不需要指定 Laravel 小版本(比如非要 v11.2.0 而非最新稳定版)
- 你信任
laravel/installer内置的预编译包 —— 它提前下载好框架+依赖+前端脚手架,跳过 Composer 逐个 install 过程,速度明显快 - 你用的是 macOS 且装了 Herd 或 Valet:
laravel new会自动检测并配置本地域名(如myapp.test),省去手动valet park或herd add - 你不介意它默认启用
npm install和php artisan storage:link等初始化动作
什么时候不该用 laravel new
它本质是个「封装好的快捷命令」,灵活性天然受限。
- 你需要安装特定版本(如
10.x或11.0):laravel new不支持--version参数,必须换composer create-project laravel/laravel myapp "11.0.*" - 你用 Windows 或 Linux 且没装 Valet:自动域名配置失效,
laravel new仍会跑完,但后续要自己配 Web 服务器或用php artisan serve - 你禁用了 Node.js 或不想初始化前端资源:
laravel new默认执行npm ci,失败会中断流程(可加--skip-install,但文档不显眼,容易漏) - 你本地 PHP 扩展不全(比如缺
mbstring或openssl):laravel new会在早期报错退出,而composer create-project可能卡在中间某步,排查更模糊
laravel new 和 composer create-project 的关键差异
两者最终产出几乎一样,但路径不同:
-
laravel new myapp→ 下载预构建 PHAR 包,解压即用,不走 Packagist 实时解析 -
composer create-project laravel/laravel myapp --prefer-dist→ 实时从 Packagist 拉取源码,触发完整 Composer 依赖解析与安装 - 前者更快、更少网络波动影响;后者更透明、可审计、支持锁定版本
- 前者要求
~/.composer/vendor/bin在$PATH中,否则命令找不到;后者只要 Composer 可用就行
容易被忽略的细节
很多人以为装完 laravel/installer 就一劳永逸,其实它本身也得更新。
-
laravel/installer自身有版本迭代,老版本可能不兼容新 Laravel(比如 installer v4.x 不支持 Laravel v11) - 运行
composer global update laravel/installer才能同步最新逻辑,尤其是 Herd/Valet 检测那块(InteractsWithHerdOrValet.php) - 如果项目目录权限不对(比如 root 创建过),
laravel new会静默失败或生成不完整文件,建议始终在用户有写权限的路径下执行 - 它不会帮你配数据库 ——
.env里还是默认的DB_DATABASE=laravel,别忘了改


















