前言
Starter Kit 是使用laravel new 创建应用时通过 create-project 展开的模板项目。Laravel 13 官方 Starter Kit 有 React / Vue / Svelte / Livewire 四种,包含认证与初始 UI。
你要制作自定义 Starter Kit 时做的事情也是一样的:以 Laravel 应用为基础整备后,作为 Composer 包发布即可。
- 官方文档:Starter Kits
- 官方实现示例:laravel/react-starter-kit
- 参考页面:Laravel Console Starter
Starter Kit 的制作
初始化 Laravel 项目
先创建作为模板的 Laravel 项目并整理不必要的示例代码。然后在composer.json 的 name 中设置唯一的包名。
name 之后会被 laravel new my-app --using=example/starter-kit 使用。
配置 composer.json 的 scripts
执行laravel new 后,Starter Kit 一侧的 Composer scripts 会用于初始化流程。至少应准备 post-root-package-install 与 post-create-project-cmd。
用 .gitattributes 控制分发对象
对希望留在 Starter Kit 仓库、但不希望包含到用户生成项目中的文件,用export-ignore 排除。
发布到 Packagist
要让用户能通过--using 使用,必须发布到 Packagist。
登记到 Packagist
在 Packagist 注册仓库。发布后
example/starter-kit 就可以被解析到。laravel new 命令的流程
laravel/installer 的 NewCommand 在指定 Starter Kit 时会切换 create-project 目标并依次执行初始化命令。
NewCommand.php 中可参考的位置:
前端框架的选择
Laravel 13 官方 Starter Kit 提供 React / Vue / Svelte / Livewire,但自定义 Starter Kit 不必与该构成一致。CSS、组件库、认证方式都可以按需自由决定。| 选项 | 主要构成 | 适合的场景 |
|---|---|---|
| 官方 React / Vue / Svelte / Livewire | 使用 Inertia 3 或 Livewire 4 的官方构成 | 希望提供接近官方的开发体验 |
| 自定义前端 | 任意 CSS、组件库 | 想使用现有设计系统或其他 CSS 基础 |
| 简易 Blade Kit | 以 Blade 为主,最小限度前端依赖 | 想以轻量构成快速引入 |
| 自定义认证 Kit | 不局限于 Fortify(例如以 Socialite 为主) | 想聚焦于特定认证方式 |
社区的 Starter Kit 常用与官方不同的 CSS 基础。认证也不必以 Fortify 为前提,请按需求设计。
版本升级维护
Starter Kit 不是「一次做完就完事」。需要随 Laravel 与 PHP 更新持续跟进。应对 Laravel、PHP 版本升级
先更新composer.json 的要求,然后在 CI 中确认兼容性。
laravel/framework 与相关依赖。
定期更新依赖
前端依赖变化快,按月更新任务较为稳妥。- Tailwind
- 组件库(shadcn/ui、shadcn-vue、shadcn-svelte、Flux UI)
- Inertia / Livewire 相关包
兼容性测试
至少将以下检查纳入 CI:composer install成功php artisan test通过npm install && npm run build通过