Realizzare un progetto Laravel + Filament + ReactJS + Tailwindcss

Per prima cosa creo il progetto Laravel vaniglia:

# composer create-project laravel/laravel myapp

# mv myapp/* .

# mv myapp/.env .

# rm-Rf myapp

Laravel 12 fornisce un installer dedicato per Inertia con ReactJS:

# composer require laravel/breeze –dev

# php artisan breeze:install react

Questo va a fare le seguenti cose:

  • Configura Inertia.js + React

  • Aggiunge Vite già impostato

  • Configura TailwindCSS

  • Crea una struttura frontend in resources/js/Pages/

Infine installiamo questi componenti con:

# npm install

Poi passiamo a FilamentPHP:

# composer require filament/filament -W

# php artisan filament:install

# php artisan filament:install –panels

Poi creiamo il primo utente amministratore (se non lo avete ancora fatto lanciate php artisan migrate per creare le tabelle nel database):

# php artisan make:filament-user

 

 

Passiamo a Inertia,.js React e Vite

# composer require inertiajs/inertia-laravel

# npm install @inertiajs/react

Pubblichiamo il middleware di Inertia con

# php artisan inertia:middleware

In Laravel 12 il middleware non aggiunge più nel Kernel.php, bensì in bootstrap/app.php:


\App\Http\Middleware\HandleInertiaRequests::class,

Poi TailwindCSS, da notare che dobbiamo procedere con una versione precedente all’ultima (adesso sarebbe la 4) perché non è ancora stabile e non consente l’installazione a causa di un errore:

# npm install -D tailwindcss@3 postcss autoprefixer

# npx tailwindcss init -p

Configuriamo tailwind modificando il file tailwind.coinfig.js

/** @type {import(‘tailwindcss’).Config} */
export default {
content: [
“./resources/**/*.blade.php”,
“./resources/**/*.js”,
“./resources/**/*.jsx”,
“./resources/**/*.tsx”,
“./resources/**/*.vue”,
],
theme: {
extend: {},
},
plugins: [],
}
Adesso aggiungiamo tailwind al file resources/css/app.css: