Skip to main content

はじめに

スターターキットは、laravel new でアプリを作るときに create-project で展開されるテンプレートプロジェクトです。Laravel 13 の公式スターターキットは React / Vue / Svelte / Livewire の4種類があり、認証や初期UIを含みます。 あなたが独自スターターキットを作るときも、やることは同じです。Laravelアプリをベースに整備して、Composerパッケージとして公開します。

スターターキットの作成

Laravelプロジェクトを初期化する

まずテンプレートになるLaravelプロジェクトを作り、不要なサンプルコードを整理します。次に composer.jsonname に一意なパッケージ名を付けます。
この name が、後で laravel new my-app --using=example/starter-kit で使われる識別子です。

composer.json の scripts を設定する

laravel new 実行後は、スターターキット側のComposer scriptsが初期化フローに使われます。post-root-package-installpost-create-project-cmd は最低限そろえてください。
この例は laravel/react-starter-kit の composer.json をベースにした構成です。データベースを使うならそのまま流用できます。

.gitattributes で配布対象を制御する

スターターキットのリポジトリには置きたいが、ユーザーの生成済みプロジェクトには含めたくないファイルを export-ignore で除外します。
詳細は .gitattributes の公式例 を確認してください。

Packagist への登録

ユーザーが --using で利用できるようにするには、Packagist登録が必要です。
1

GitHubで公開リポジトリを用意する

composer.jsonname とリポジトリURLを整合させて公開します。
2

Packagistに登録する

Packagist でリポジトリを登録します。公開後、example/starter-kit が解決可能になります。
3

利用コマンドをREADMEに明記する

ユーザー向けに次の導入コマンドを記載します。

laravel new コマンドのフロー

laravel/installerNewCommand は、スターターキット指定時に create-project 先を切り替えて初期化コマンドを順番に実行します。 NewCommand.php で確認したい箇所:

フロントエンドフレームワークの選択

Laravel 13 の公式スターターキットは React / Vue / Svelte / Livewire を提供していますが、独自スターターキットはこの構成に合わせる必要はありません。目的に合わせて CSS や component library、認証方式を自由に決めて問題ありません。
コミュニティのスターターキットは、公式とは異なるCSS基盤を採用する例が一般的です。認証もFortify前提にせず、要件に合わせて設計してください。

バージョンアップメンテナンス

スターターキットは「作って終わり」ではありません。LaravelやPHPの更新に合わせて継続的に追従します。

Laravel・PHPバージョンアップ対応

まず composer.json の要件を更新し、CIで互換性を確認します。
Laravelメジャー更新時は、laravel/framework と周辺依存を同時に見直してください。

定期的な依存パッケージ更新

フロントエンド依存は変化が速いため、月次で更新タスクを回すのが安全です。
  • Tailwind
  • component library (shadcn/ui, shadcn-vue, shadcn-svelte, Flux UI)
  • Inertia / Livewire 関連パッケージ

互換性テスト

少なくとも次の確認をCIに入れてください。
  • composer install が成功する
  • php artisan test が通る
  • npm install && npm run build が通る

ベストプラクティス

  • name は早い段階で固定する: Packagist公開後の変更コストが高いです。
  • scripts は公式例を基準にする: 初期化フローを崩すと導入失敗が増えます。
  • .gitattributes を最初に整備する: テンプレート配布時のノイズを減らせます。
  • アップグレードを定期化する: Laravelリリース後すぐに追従できる運用を作ってください。
  • 関連ガイドを併読する: パッケージ開発の基礎パッケージのバージョン互換性管理 を合わせて読むと設計が安定します。
最終更新日 2026年5月7日