Skip to content
Development
Skill

/fec-vite-project-standard

Use when creating, configuring, reviewing, or debugging Vite-based frontend projects, vite.config.ts, env variables, dev server proxy, HMR, plugin ordering, library mode, dependency pre-bundling, bundle splitting, or Vite build performance. Use framework-specific skills for

From plugin
frontend-craft
2156 skills14 agents11 commands5 hooks
+1
Install
$ npx -y skills add bovinphang/frontend-craft --skill fec-vite-project-standard --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/fec-vite-project-standard

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when creating, configuring, reviewing, or debugging Vite-based frontend projects, vite.config.ts, env variables, dev server proxy, HMR, plugin ordering, library mode, dependency pre-bundling, bundle splitting, or Vite build performance. Use framework-specific skills for

SKILL.md

fec-vite-project-standard.SKILL.md
name: fec-vite-project-standard
description: Use when creating, configuring, reviewing, or debugging Vite-based frontend projects, vite.config.ts, env variables, dev server proxy, HMR, plugin ordering, library mode, dependency pre-bundling, bundle splitting, or Vite build performance. Use framework-specific skills for React/Vue component architecture; Chinese triggers include Vite configuration, vite.config, Vite build, Vite performance.

Vite Project Specifications

Design and review of Vite applications, component libraries, development servers, and build configurations.

Purpose

Standardize Vite configurations, security boundaries, and build performance to avoid common pitfalls of development environments and production builds.

Procedure

1. Identify the project type

  • Application projects check `root`, `base`, `server.proxy`, `envPrefix`, `build` and framework plugins first.
  • Component library projects check `build.lib`, type products, peer dependencies external and export entries first.
  • Monorepo additional checks for `server.fs.allow`, path aliases and package dependency boundaries.

2. Select plugin

  • React gives priority to `@vitejs/plugin-react-swc` by default; use `@vitejs/plugin-react` only when the Babel plug-in is required.
  • The Vue project uses `@vitejs/plugin-vue`, and path aliases are given priority to `vite-tsconfig-paths`.
  • TypeScript projects must complete type checking via `tsc --noEmit`, CI or `vite-plugin-checker`.

3. Manage environment variables

  • Clients only read explicitly exposed prefixes, such as `VITE_`.
  • The third parameter of `loadEnv` uses an explicit prefix array and does not use an empty string to load all variables.
  • Keys, database addresses, and private tokens must stay on the server or build system and not enter the client bundle.

4. Optimize development experience

  • Use `vite --profile` to locate plug-in, parsing or pre-built bottlenecks before slow start.
  • Use `optimizeDeps.include` for CJS/UMD dependencies to handle interop issues.
  • Large projects can use `server.warmup.clientFiles` to warm up the core entrance.

5. Optimize production builds

  • Run `vite build` before release and use `vite preview` to do local build smoke testing.
  • Prioritize manual subcontracting by using stable object forms to avoid splitting each dependency into independent small chunks.
  • The production sourcemap is turned off by default; if uploaded to the error tracking platform, it will not be published with the site after uploading.
  • Motion effects, 3D, charts, editors, maps, and audio and video processing libraries are prioritized for isolation through dynamic import or route-level unpacking.
  • Check whether static resources go into the correct directory, have been hashed/cache, have placeholder URLs, or are too large uncompressed media.

Minimal Config

import { defineConfig, loadEnv } from "vite";
import react from "@vitejs/plugin-react-swc";
import tsconfigPaths from "vite-tsconfig-paths";

export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd(), ["VITE_"]);

  return {
    plugins: [react(), tsconfigPaths()],
    define: {
      __PUBLIC_API_URL__: JSON.stringify(env.VITE_API_URL),
    },
    server: {
      proxy: {
        "/api": {
          target: "http://localhost:8080",
          changeOrigin: true,
        },
      },
    },
  };
});

Constraints

  • `vite build` only translates and packages, not type checking; CI must run typecheck separately.
  • `VITE_` is not a security boundary; any `VITE_` variable goes into the client package.
  • Do not set `envPrefix: ""`, do not use `loadEnv(mode, root, "")` and then `define` at will.
  • Legacy plugins are not introduced by default; only enable them when needed for real user data.
  • Don't use `vite preview` as a production server.
  • Component libraries must externalize peer dependencies and produce `.d.ts` separately.
  • Do not inject server keys into clients via `define`, `import.meta.env` or empty prefix `loadEnv`.
  • Do not put heavy libraries such as GSAP, Three.js, Lottie, Monaco, and Map SDK into all page sharing entries; first evaluate the impact of async chunk and first screen.

Expected Output

The output should include project type judgment, key configuration changes, environment variable security instructions, and build/development performance verification methods. When completed, the Vite configuration should be type-checked, buildable, secret-secure, and explain the differences between dev and build.

Read more
Ships withfrontend-craft

frontend-craft is a universal frontend plugin that brings the same opinionated engineering standards to all 15 AI coding assistants.

Get the whole plugin

Other skills on frontend-craft.