mcpField
L
laravel-vite

laravel-vite

github.com/fusengine开发3460 次安装2 周前更新
代码仓库

关于 laravel-vite

面向使用 Vite 的 Laravel 前端开发者的构建指南,介绍初始设置、资源处理、开发流程、SSR 与生产部署。

主要功能

  1. 01配置 laravel-vite-plugin
  2. 02多个入口点与资源处理
  3. 03HMR 与 Docker 配置
  4. 04构建优化与 SSR
  5. 05集成 Inertia、Vue、React、Svelte
  6. 06CSP nonce 与部署指南

适用场景

  1. 01为 Laravel 应用配置 Vite
  2. 02为本地或 Docker 开发设置 HMR
  3. 03准备可部署的优化资源
  4. 04配置 SSR 或搭配 JS 框架使用 Inertia

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fusengine/agents --skill laravel-vite

安装后在 Claude Code 中输入/laravel-vite确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
assets.md
build-optimization.md
deployment.md
dev-server.md
entry-points.md
environment.md
frameworks.md
inertia.md
preprocessors.md
security.md
setup.md
ssr.md
references/templates/
InertiaSetup.md
SSRSetup.md
ViteConfig.js.md
ViteConfigAdvanced.js.md

详细介绍

介绍如何将 Vite 用作 Laravel 前端构建工具:初始设置和 laravel-vite-plugin、多入口、CSS 预处理器(Sass/Less/PostCSS)、资源处理、带 VITE_ 前缀的环境变量、开发服务器和 HMR(包括 Docker 配置)、构建优化(分块、压缩)、服务端渲染、Inertia 集成、JS 框架插件(Vue/React/Svelte)、CSP nonce 安全性,以及生产环境部署。

Laravel Vite

Agent 工作流(强制)

在进行任何实现之前,必须并行启动 3 个 Agent,每个调用一个 Agent,并指定 name:

  1. fuse-ai-pilot:explore-codebase - 检查现有的 vite.config.js、package.json
  2. fuse-ai-pilot:research-expert - 通过 Context7 核实最新的 Vite 文档
  3. mcp__context7__query-docs - 查询具体模式(SSR、Inertia)

实现后,运行 fuse-ai-pilot:sniper 进行验证。


概述

Vite 是 Laravel 默认的前端构建工具。它可在开发过程中提供快速 HMR,并为生产环境生成经过优化的构建产物。

特性用途
HMR开发期间即时更新
打包优化生产环境资源
SSR支持服务端渲染
框架集成 Vue、React、Svelte

重要规则

  1. 始终使用 laravel-vite-plugin - 不要使用原生 Vite 配置
  2. 环境变量使用 VITE_ 前缀 - 仅向前端公开
  3. 使用 @vite 指令 - 不要手动编写 script 标签
  4. 部署前先构建 - 在 CI/CD 中运行 npm run build
  5. 为 Docker 配置 HMR - 设置 server.host: '0.0.0.0'

决策指南

技术栈选择
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 决策
Need SEO/fast first paint?
├── YES → Using Inertia?
│   ├── YES → Inertia SSR
│   └── NO → Consider Inertia or Livewire
└── NO → Client-side only

参考指南

概念(原因与架构)
主题参考资料何时查阅
设置setup.md初始配置
入口点entry-points.md多个打包产物
预处理器preprocessors.mdSass、Less、PostCSS
资源assets.md图片、字体、静态资源
环境environment.mdVITE_ 变量
开发服务器dev-server.mdHMR、Docker、HTTPS
构建build-optimization.md分块、压缩
SSRssr.md服务端渲染
Inertiainertia.md无需 API 的 SPA
框架frameworks.mdVue、React、Svelte
安全性security.mdCSP nonce
部署deployment.md生产环境、CDN
模板(完整代码)
模板适用场景
ViteConfig.js.md标准设置
ViteConfigAdvanced.js.md完整优化
InertiaSetup.mdInertia + Vue/React
SSRSetup.mdSSR 配置

快速参考

基本设置
// 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 指令
<!DOCTYPE html>
<head>
    @vite(['resources/css/app.css', 'resources/js/app.js'])
</head>
命令
命令用途
npm run dev启动开发服务器
npm run build生产环境构建
npm run preview预览构建产物

最佳实践

应该做
  • 使用 refresh: true 实现 Blade HMR
  • 配置别名,让导入路径更简洁
  • 将供应商代码拆分到单独的分块中
  • 为前端环境变量使用 VITE_ 前缀
  • 在本地测试 Docker/Sail 配置
不应该做
  • 通过 VITE_ 变量公开敏感数据
  • 忘记在部署前进行构建
  • 对资源使用绝对路径
  • 在预发布环境中跳过源映射
  • 忽略分块大小警告

Laravel 13 说明

Laravel 13 骨架自带 laravel-vite-plugin ^3.1(当前为 3.2,peer vite ^8)+ Vite 8 + @tailwindcss/vite ^4。相关调整:

  • @vite() Blade 助手保持不变
  • 对于 Inertia 3 + React 19:使用 @vitejs/plugin-react(当前为 6.x)
  • 自托管字体(13.7+):插件的 fonts 选项(import { google, bunny, fontsource, local } from 'laravel-vite-plugin/fonts')+ @fonts Blade 指令
  • 使用 Vite::devServerUrl()(13.31+)获取开发服务器 URL
  • 通过 WebSocket 实现 HMR:开发环境中,Reverb 和 Vite 可以在不同端口上共存
  • build.target 是浏览器(JS)目标,与服务器的 PHP 版本无关

评论

支持 Markdown