agentsclimarketplace

Fec vite project standard

Skill bovinphang/frontend-craft/skills/fec-vite-project-standard

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

Install
npx -y skills add bovinphang/frontend-craft --skill fec-vite-project-standard

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 19 stars19 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

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.

SKILL.md

4.5 KB, 918 tokens by cl100k_base, as published. Nobody here has run it

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.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.