home / skills / fusengine / agents / laravel-vite

This skill configures Laravel Vite pipelines to optimize assets, HMR, SSR, and framework integration for faster development and production builds.

npx playbooks add skill fusengine/agents --skill laravel-vite

Review the files below or copy the command above to add this skill to your agents.

Files (17)
SKILL.md
4.9 KB
---
name: laravel-vite
description: Complete Vite bundling for Laravel - assets, HMR, SSR, frameworks, optimization. Use when configuring frontend build pipeline.
versions:
  laravel: "12.x"
  vite: "6.x"
  php: "8.4"
user-invocable: true
references: references/setup.md, references/entry-points.md, references/preprocessors.md, references/assets.md, references/environment.md, references/dev-server.md, references/build-optimization.md, references/ssr.md, references/inertia.md, references/frameworks.md, references/security.md, references/deployment.md, references/templates/ViteConfig.js.md, references/templates/ViteConfigAdvanced.js.md, references/templates/InertiaSetup.md, references/templates/SSRSetup.md
related-skills: laravel-blade, laravel-livewire, fusecore
---

# Laravel Vite

## Agent Workflow (MANDATORY)

Before ANY implementation, use `TeamCreate` to spawn 3 agents:

1. **fuse-ai-pilot:explore-codebase** - Check existing vite.config.js, package.json
2. **fuse-ai-pilot:research-expert** - Verify latest Vite docs via Context7
3. **mcp__context7__query-docs** - Query specific patterns (SSR, Inertia)

After implementation, run **fuse-ai-pilot:sniper** for validation.

---

## Overview

Vite is Laravel's default frontend build tool. It provides fast HMR in development and optimized builds for production.

| Feature | Purpose |
|---------|---------|
| **HMR** | Instant updates during development |
| **Bundling** | Optimized production assets |
| **SSR** | Server-side rendering support |
| **Frameworks** | Vue, React, Svelte integration |

---

## Critical Rules

1. **Always use laravel-vite-plugin** - Never raw Vite config
2. **VITE_ prefix for env vars** - Only exposed to frontend
3. **Use @vite directive** - Not manual script tags
4. **Build before deploy** - `npm run build` in CI/CD
5. **Configure HMR for Docker** - Set `server.host: '0.0.0.0'`

---

## Decision Guide

### Stack Selection

```
Using Tailwind CSS?
├── YES → v4? @tailwindcss/vite plugin
│         v3? PostCSS config
└── NO → Just laravel-vite-plugin

Using JavaScript framework?
├── Vue → @vitejs/plugin-vue
├── React → @vitejs/plugin-react
├── Svelte → @sveltejs/vite-plugin-svelte
└── None → Plain JS/CSS only
```

### SSR Decision

```
Need SEO/fast first paint?
├── YES → Using Inertia?
│   ├── YES → Inertia SSR
│   └── NO → Consider Inertia or Livewire
└── NO → Client-side only
```

---

## Reference Guide

### Concepts (WHY & Architecture)

| Topic | Reference | When to Consult |
|-------|-----------|-----------------|
| **Setup** | [setup.md](references/setup.md) | Initial configuration |
| **Entry Points** | [entry-points.md](references/entry-points.md) | Multiple bundles |
| **Preprocessors** | [preprocessors.md](references/preprocessors.md) | Sass, Less, PostCSS |
| **Assets** | [assets.md](references/assets.md) | Images, fonts, static |
| **Environment** | [environment.md](references/environment.md) | VITE_ variables |
| **Dev Server** | [dev-server.md](references/dev-server.md) | HMR, Docker, HTTPS |
| **Build** | [build-optimization.md](references/build-optimization.md) | Chunks, minification |
| **SSR** | [ssr.md](references/ssr.md) | Server-side rendering |
| **Inertia** | [inertia.md](references/inertia.md) | SPA without API |
| **Frameworks** | [frameworks.md](references/frameworks.md) | Vue, React, Svelte |
| **Security** | [security.md](references/security.md) | CSP nonce |
| **Deployment** | [deployment.md](references/deployment.md) | Production, CDN |

### Templates (Complete Code)

| Template | When to Use |
|----------|-------------|
| [ViteConfig.js.md](references/templates/ViteConfig.js.md) | Standard setup |
| [ViteConfigAdvanced.js.md](references/templates/ViteConfigAdvanced.js.md) | Full optimization |
| [InertiaSetup.md](references/templates/InertiaSetup.md) | Inertia + Vue/React |
| [SSRSetup.md](references/templates/SSRSetup.md) | SSR configuration |

---

## Quick Reference

### Basic Setup

```javascript
// vite.config.js
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: true,
        }),
    ],
});
```

### Blade Directive

```blade
<!DOCTYPE html>
<head>
    @vite(['resources/css/app.css', 'resources/js/app.js'])
</head>
```

### Commands

| Command | Purpose |
|---------|---------|
| `npm run dev` | Start dev server |
| `npm run build` | Production build |
| `npm run preview` | Preview build |

---

## Best Practices

### DO
- Use `refresh: true` for Blade HMR
- Configure aliases for clean imports
- Split vendors into separate chunks
- Use `VITE_` prefix for frontend env vars
- Test Docker/Sail config locally

### DON'T
- Expose sensitive data via VITE_ vars
- Forget to build before deploying
- Use absolute paths for assets
- Skip source maps in staging
- Ignore chunk size warnings

Overview

This skill provides a complete Laravel Vite integration for frontend build pipelines: assets, HMR, SSR, framework plugins, and build optimization. It codifies recommended configuration, critical rules, and templates so teams can standardize fast development and reliable production builds. Use it to reduce manual Vite mistakes and ensure consistent deployments across local, Docker, and CI environments.

How this skill works

Before any implementation, spawn three agents with TeamCreate to inspect the codebase, verify current Vite docs, and query patterns for SSR or Inertia. The skill enforces use of the laravel-vite-plugin, VITE_ env variable conventions, and the @vite Blade directive while offering templates for standard and advanced vite.config setups. It validates configuration and runs a final validation agent to ensure HMR, Docker settings, and build outputs are correct.

When to use it

  • Setting up or migrating a Laravel app to use Vite for dev and production builds
  • Configuring HMR for local development or Docker/Sail environments
  • Adding framework integrations (Vue, React, Svelte) or SSR/Inertia support
  • Optimizing production bundles, splitting vendors, and configuring aliases
  • Standardizing CI/CD to run build steps and validate outputs before deploy

Best practices

  • Always use laravel-vite-plugin instead of raw Vite config for Laravel integration
  • Prefix frontend environment variables with VITE_ and never expose secrets
  • Use @vite Blade directive for asset injection and refresh: true for Blade HMR
  • Configure server.host = '0.0.0.0' for Docker HMR and test Sail locally
  • Run npm run build in CI/CD and validate asset integrity and chunk sizes

Example use cases

  • Enable instant HMR for Blade-driven pages during local development
  • Add Vue or React plugin and set entry points for multi-bundle apps
  • Configure SSR for SEO-critical landing pages using Inertia or server rendering
  • Optimize production by splitting vendor chunks and enabling minification
  • Prepare Docker-based dev environment with host binding and secure env handling

FAQ

Do I have to use laravel-vite-plugin?

Yes. The plugin handles Laravel-specific asset routing, Blade refresh hooks, and simplifies integration; avoid raw Vite configs for Laravel projects.

How should I expose environment variables to the frontend?

Only expose variables prefixed with VITE_. Never place secrets in these variables; keep secrets on the server or CI secrets store.

What settings are required for HMR inside Docker?

Set server.host to '0.0.0.0', configure correct port forwarding, and ensure refresh: true in the laravel-vite-plugin for Blade HMR.