Was sind Laravel und Vite
Vite ist ein schnelles Frontend-Build-Tool. Während der Entwicklung sorgt Hot Module Replacement (HMR) dafür, dass Änderungen sofort im Browser sichtbar werden; für Produktionsbuilds werden optimierte Assets erzeugt. Seit Laravel 9 ist Vite das Standard-Frontend-Build-Tool und wird überlaravel-vite-plugin in Laravel integriert. Das Plugin übernimmt insbesondere folgende Aufgaben:
- Verwaltung der Entry Points
- HMR-Unterstützung im Entwicklungsserver
- Integration in die Blade-Direktive
@vite() - Versionierung der Assets im Produktionsbuild (Cache-Busting)
Wenn Sie eines der Starter Kits (etwa Laravel Breeze) verwenden, sind Vite- und Tailwind-Konfiguration bereits enthalten. Auf dieser Seite wird die Einrichtung von Grund auf erläutert.
Installation und Einrichtung
Node prüfen
Für Vite benötigen Sie Node.js (Version 16 oder höher) und npm. Prüfen Sie, ob sie installiert sind:Pakete installieren
Ein frisch installiertes Laravel-Projekt enthält in derpackage.json bereits vite und laravel-vite-plugin. Installieren Sie die Abhängigkeiten mit:
vite.config.js konfigurieren
Im Projekt-Root ist bereits eine vite.config.js vorhanden. Geben Sie darin die Entry Points an – also die Dateien, von denen aus die Bundles erstellt werden:
Entwicklungsserver starten
Starten Sie während der Entwicklung den Vite-Entwicklungsserver mitnpm run dev. Bei Dateiänderungen aktualisiert sich der Browser automatisch (HMR).
composer run dev startet php artisan serve und npm run dev gleichzeitig.Blade-Views automatisch neu laden
Mitrefresh: true wird der Browser bei Änderungen an Blade-Views oder Routen-Dateien automatisch neu geladen.
refresh: true gesetzt, werden Änderungen in folgenden Verzeichnissen überwacht:
resources/views/**app/Livewire/**routes/**lang/**
Produktions-Build
Führen Sie vor dem Deploynpm run build aus. Die Assets werden gebündelt, versioniert und nach public/build/ ausgegeben.
manifest.json enthält die Zuordnung von Dateinamen zu Hashes. Die Direktive @vite() liest diese Datei aus und lädt so die korrekten Dateien.
Assets aus Blade laden
Fügen Sie die Blade-Direktive@vite() im <head> Ihres Layouts ein:
@vite() wechselt automatisch zwischen Entwicklungs- und Produktionsverhalten:
| Situation | Verhalten |
|---|---|
| Entwicklungsserver läuft | Assets werden vom Vite-Dev-Server geladen, HMR aktiv |
| Produktion (gebaut) | Es wird public/build/manifest.json gelesen und die versionierten Dateien geladen |
Entry Points für JavaScript und CSS
JavaScript
resources/js/app.js ist der zentrale Entry Point. Von dort aus importieren Sie weitere Module.
CSS
Globale Stile schreiben Sie inresources/css/app.css.
Mehrere Entry Points
Wenn Sie für unterschiedliche Bereiche – etwa ein Backend – separate Assets bündeln möchten, geben Sie mehrere Entry Points an:Integration mit Tailwind CSS
Ab Tailwind CSS v4 wird Tailwind als Vite-Plugin eingebunden.Wenn Sie Tailwind CSS v3 verwenden, benötigen Sie zusätzlich
tailwind.config.js und postcss.config.js. Bei Tailwind CSS v4 sind diese Dateien nicht mehr nötig.Alias-Konfiguration
laravel-vite-plugin richtet automatisch den Alias @ ein, der auf das Verzeichnis resources/js verweist.
resolve.alias:
Framework-spezifische Einstellungen
Vue
React
@viteReactRefresh vor @vite ein:
Statische Assets verarbeiten
Auch aus Blade-Templates referenzierte Bilder und Fonts können mit Vite versioniert werden. Legen Sie die betroffenen Verzeichnisse in der Optionassets fest:
Vite::asset():
Zusammenfassung
| Ziel | Vorgehen |
|---|---|
| Entwicklungsserver starten | npm run dev |
| Produktions-Assets bauen | npm run build |
| Assets in Blade laden | @vite(['resources/css/app.css', 'resources/js/app.js']) |
| Blade-Änderungen automatisch neu laden | refresh: true in vite.config.js setzen |
| Tailwind CSS verwenden | Plugin @tailwindcss/vite hinzufügen |
Alias @ verwenden | Zeigt standardmäßig auf resources/js |
| Statische Assets versionieren | Option assets und Vite::asset() nutzen |
Nächste Schritte
Cache
Erfahren Sie, wie Sie mit den Cache-Funktionen von Laravel die Performance Ihrer Anwendung weiter steigern.