Reading List

Vite with Laravel: Auto-refresh Blade views from Sebastian De Deyne RSS feed.

Vite with Laravel: Auto-refresh Blade views

We’re up and running, but there’s another Laravel-specific quality of life improvement we can make: auto-refreshing when a Blade file changes.

To do this, we’ll write a simple Blade plugin right inside the Vite configuration.

I didn’t write this plugin myself, this is an except from innocenzi/laravel-vite.

The plugin listens to changes in .blade.php files, and does a full reload when they change.

// vite.config.js
export default ({ command }) => ({
base: command === 'serve' ? '' : '/build/',
outDir: 'public/build',
publicDir: 'fake_dir_so_nothing_gets_copied',
build: {
manifest: true,
rollupOptions: {
input: 'resources/js/app.js',
},
},
 plugins: [
 {
 name: 'blade',
 handleHotUpdate({ file, server }) {
 if (file.endsWith('.blade.php')) {
 server.ws.send({
 type: 'full-reload',
 path: '*',
 });
 }
 },
 }
 ],
});