Vite Project Specifications
SkillDev toolsUse 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.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Vite Project Specifications skill
What this skill tells your AI
The instructions your AI receives, as published by bovinphang/frontend-craft in skills/fec-vite-project-standard/SKILL.md and read by ahel’s review.
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
-
Identify the project type
- Application projects check
root,base,server.proxy,envPrefix,buildand 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.
- Application projects check
-
Select plugin
- React gives priority to
@vitejs/plugin-react-swcby default; use@vitejs/plugin-reactonly when the Babel plug-in is required. - The Vue project uses
@vitejs/plugin-vue, and path aliases are given priority tovite-tsconfig-paths. - TypeScript projects must complete type checking via
tsc --noEmit, CI orvite-plugin-checker.
- React gives priority to
-
Manage environment variables
- Clients only read explicitly exposed prefixes, such as
VITE_. - The third parameter of
loadEnvuses 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.
- Clients only read explicitly exposed prefixes, such as
-
Optimize development experience
- Use
vite --profileto locate plug-in, parsing or pre-built bottlenecks before slow start. - Use
optimizeDeps.includefor CJS/UMD dependencies to handle interop issues. - Large projects can use
server.warmup.clientFilesto warm up the core entrance.
- Use
-
Optimize production builds
- Run
vite buildbefore release and usevite previewto 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.
- Run
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 buildonly translates and packages, not type checking; CI must run typecheck separately.VITE_is not a security boundary; anyVITE_variable goes into the client package.- Do not set
envPrefix: "", do not useloadEnv(mode, root, "")and thendefineat will. - Legacy plugins are not introduced by default; only enable them when needed for real user data.
- Don't use
vite previewas a production server. - Component libraries must externalize peer dependencies and produce
.d.tsseparately. - Do not inject server keys into clients via
define,import.meta.envor empty prefixloadEnv. - 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.
Signals
- GitHub stars
- 21
- Forks
- 3
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
fec-vite-project-standard- Source
- github.com/bovinphang/frontend-craft