Skip to main content

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 über laravel-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.
Eine Einordnung, wie Vite ins Frontend-Setup von Laravel passt, finden Sie zuerst im Überblick unter Frontend.

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 der package.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:
Bei einer SPA oder mit Inertia wird empfohlen, das CSS aus dem JavaScript zu importieren. Entfernen Sie in diesem Fall resources/css/app.css aus den Entry Points und fügen Sie am Anfang von resources/js/app.js import '../css/app.css'; hinzu.

Entwicklungsserver starten

Starten Sie während der Entwicklung den Vite-Entwicklungsserver mit npm run dev. Bei Dateiänderungen aktualisiert sich der Browser automatisch (HMR).
Sie können ihn auch parallel zum Laravel-Entwicklungsserver starten:
composer run dev startet php artisan serve und npm run dev gleichzeitig.

Blade-Views automatisch neu laden

Mit refresh: true wird der Browser bei Änderungen an Blade-Views oder Routen-Dateien automatisch neu geladen.
Ist refresh: true gesetzt, werden Änderungen in folgenden Verzeichnissen überwacht:
  • resources/views/**
  • app/Livewire/**
  • routes/**
  • lang/**

Produktions-Build

Führen Sie vor dem Deploy npm run build aus. Die Assets werden gebündelt, versioniert und nach public/build/ ausgegeben.
Beispielhafte Verzeichnisstruktur nach dem Build:
Die manifest.json enthält die Zuordnung von Dateinamen zu Hashes. Die Direktive @vite() liest diese Datei aus und lädt so die korrekten Dateien.
Da public/build/ ein Build-Artefakt ist, sollten Sie das Verzeichnis in .gitignore aufnehmen. Führen Sie den Build entweder auf dem Zielsystem oder in CI aus und deployen Sie anschließend.

Assets aus Blade laden

Fügen Sie die Blade-Direktive @vite() im <head> Ihres Layouts ein:
Wenn Sie CSS im JavaScript importieren, geben Sie nur den JavaScript-Entry-Point an:
Die Direktive @vite() wechselt automatisch zwischen Entwicklungs- und Produktionsverhalten:

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 in resources/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:
In Blade laden Sie dann nur die jeweils passenden Entry Points:

Integration mit Tailwind CSS

Ab Tailwind CSS v4 wird Tailwind als Vite-Plugin eingebunden.
1

Tailwind installieren

2

Plugin in vite.config.js einfügen

3

Tailwind im CSS importieren

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.
Möchten Sie eigene Aliase ergänzen, setzen Sie sie unter resolve.alias:
Beispiel für Imports mit Aliasen:

Framework-spezifische Einstellungen

Vue

React

Bei React fügen Sie im Blade-Template die Direktive @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 Option assets fest:
Im Blade-Template ermitteln Sie die versionierte URL über Vite::asset():

Zusammenfassung

Nächste Schritte

Cache

Erfahren Sie, wie Sie mit den Cache-Funktionen von Laravel die Performance Ihrer Anwendung weiter steigern.
Zuletzt geändert am 13. Juli 2026