Einleitung
Ein Starter-Kit ist ein Projekt-Template, das beim Erstellen einer Anwendung mitlaravel new per create-project ausgerollt wird. Die offiziellen Starter-Kits von Laravel 13 gibt es in den vier Varianten React, Vue, Svelte und Livewire und enthalten Authentifizierung sowie ein initiales UI.
Wenn Sie ein eigenes Starter-Kit erstellen, funktioniert es genauso: Sie richten eine Laravel-Anwendung als Basis ein und veröffentlichen sie als Composer-Paket.
- Offizielle Dokumentation: Starter Kits
- Offizielle Referenzimplementierung: laravel/react-starter-kit
- Zugehörige Seite: Laravel Console Starter
Ein Starter-Kit erstellen
Ein Laravel-Projekt initialisieren
Erstellen Sie zunächst das Laravel-Projekt, das als Template dienen soll, und räumen Sie überflüssigen Beispielcode auf. Vergeben Sie anschließend in dercomposer.json unter name einen eindeutigen Paketnamen.
name ist der Bezeichner, den Sie später bei laravel new my-app --using=example/starter-kit verwenden.
Die scripts in composer.json konfigurieren
Nach der Ausführung vonlaravel new werden die Composer-Scripts des Starter-Kits für die Initialisierung verwendet. Bereiten Sie mindestens post-root-package-install und post-create-project-cmd vor.
Verteilung über .gitattributes steuern
Dateien, die zwar im Starter-Kit-Repository liegen sollen, aber nicht in das generierte Projekt der Nutzer gehören, schließen Sie mitexport-ignore aus.
Auf Packagist veröffentlichen
Damit Nutzer Ihr Kit über--using verwenden können, muss es auf Packagist registriert sein.
Öffentliches GitHub-Repository vorbereiten
Stellen Sie sicher, dass der
name in composer.json und die Repository-URL zueinander passen, und veröffentlichen Sie das Repository.Auf Packagist registrieren
Registrieren Sie das Repository auf Packagist. Danach ist
example/starter-kit auflösbar.Ablauf des Befehls laravel new
Der NewCommand in laravel/installer wechselt bei Angabe eines Starter-Kits das Ziel von create-project und führt die Initialisierungsbefehle der Reihe nach aus.
Interessante Stellen in NewCommand.php:
- Definition der Option —using
- Aufruf von
create-projectundpost-root-package-install - Implementierung von
getStarterKit()
Wahl des Frontend-Frameworks
Die offiziellen Starter-Kits von Laravel 13 bieten React, Vue, Svelte und Livewire. Ihr eigenes Starter-Kit muss sich aber nicht daran orientieren. Sie können CSS, Component Library und Authentifizierungsverfahren frei nach Ziel wählen.| Option | Wesentliche Bausteine | Geeignet für |
|---|---|---|
| Offizielles React / Vue / Svelte / Livewire | Offizieller Aufbau mit Inertia 3 oder Livewire 4 | Sie wollen eine offiziellsnahe Entwicklererfahrung anbieten |
| Eigenes Frontend | Beliebige CSS- oder Component-Library | Sie wollen ein bestehendes Design-System oder eine andere CSS-Basis nutzen |
| Schlankes Blade-Kit | Blade-zentriert mit minimalen Frontend-Abhängigkeiten | Sie wollen einen leichtgewichtigen Aufbau schnell bereitstellen |
| Eigenes Auth-Kit | Nicht auf Fortify beschränkt (z. B. Socialite-zentriert) | Sie wollen auf ein bestimmtes Authentifizierungsverfahren fokussieren |
Community-Starter-Kits setzen üblicherweise andere CSS-Grundlagen als die offiziellen ein. Machen Sie auch bei der Authentifizierung Fortify nicht zur Pflichtannahme, sondern entwerfen Sie sie passend zu Ihren Anforderungen.
Wartung bei Versionsaktualisierungen
Ein Starter-Kit ist nicht mit dem Erstellen erledigt. Es muss den Aktualisierungen von Laravel und PHP fortlaufend folgen.Umgang mit Laravel- und PHP-Upgrades
Aktualisieren Sie zunächst die Anforderungen incomposer.json und prüfen Sie die Kompatibilität in der CI.
laravel/framework und die umliegenden Abhängigkeiten.
Regelmäßige Aktualisierung der Abhängigkeiten
Frontend-Abhängigkeiten ändern sich schnell — es ist sicherer, monatlich einen Update-Task einzuplanen.- Tailwind
- Component Libraries (shadcn/ui, shadcn-vue, shadcn-svelte, Flux UI)
- Inertia- / Livewire-bezogene Pakete
Kompatibilitätstests
Mindestens diese Prüfungen sollten Teil Ihrer CI sein:composer installläuft erfolgreich durch.php artisan testbesteht.npm install && npm run buildläuft erfolgreich durch.
Best Practices
- Legen Sie den
namefrüh fest: Änderungen nach der Packagist-Veröffentlichung sind teuer. - Orientieren Sie die scripts an den offiziellen Beispielen: Ein zerbrochener Initialisierungsfluss führt häufig zu fehlgeschlagenen Installationen.
- Bereiten Sie
.gitattributesgleich zu Beginn auf: So reduzieren Sie Störmüll bei der Template-Verteilung. - Institutionalisieren Sie Upgrades: Etablieren Sie einen Betriebsablauf, der Laravel-Releases zeitnah nachzieht.
- Lesen Sie ergänzende Guides: Grundlagen der Paketentwicklung und Versionskompatibilität von Paketen verwalten machen Ihr Design stabiler.