Assists with configuring and using Vite as a frontend build tool for modern web applications. Use when setting up dev servers, optimizing production builds, configuring plugins, migrating from Webpack or CRA, or building component libraries. Trigger words: vite, build tool, HMR, hot module replacement, vite config, rollup, bundling.
Scanned 5/27/2026
Install via CLI
openskills install jaem1n207/synchronize-tab-scrolling---
name: vite
description: >-
Assists with configuring and using Vite as a frontend build tool for modern web applications.
Use when setting up dev servers, optimizing production builds, configuring plugins, migrating
from Webpack or CRA, or building component libraries. Trigger words: vite, build tool, HMR,
hot module replacement, vite config, rollup, bundling.
license: Apache-2.0
compatibility: "Requires Node.js 16+"
metadata:
author: terminal-skills
version: "1.0.0"
category: development
tags: ["vite", "build-tool", "bundler", "frontend", "hmr"]
---
# Vite
## Overview
Vite is a next-generation frontend build tool providing instant dev server startup via native ES modules and optimized Rollup-based production builds. It supports React, Vue, Svelte, and vanilla TypeScript projects with advanced bundling strategies, plugin extensibility, and library mode.
## Instructions
- When setting up a project, create `vite.config.ts` with the appropriate framework plugin (`@vitejs/plugin-react`, `@vitejs/plugin-vue`), configure `resolve.alias` with `@` mapping to `src/`, and set environment variables with `VITE_` prefix.
- When configuring the dev server, set up API proxying with `server.proxy`, enable HTTPS with `@vitejs/plugin-basic-ssl`, and use `server.watch` polling for containers or VMs.
- When optimizing builds, configure manual chunks with `build.rollupOptions.output.manualChunks` for vendor splitting, enable CSS code splitting, and set `build.target` for browser compatibility.
- When creating plugins, use the Rollup-compatible plugin API with `resolveId`, `load`, and `transform` hooks, and leverage virtual modules with the `virtual:` prefix.
- When building libraries, configure `build.lib` with entry point and output formats (es, cjs, umd), externalize peer dependencies, and use `vite-plugin-dts` for TypeScript declaration generation.
- When migrating from Webpack, replace `webpack.config.js` with `vite.config.ts`, swap loaders for Vite plugins, and update `REACT_APP_*` env vars to `VITE_*`.
- When integrating testing, use Vitest which shares Vite config and provides instant HMR for tests.
## Examples
### Example 1: Migrate a Create React App project to Vite
**User request:** "Convert my CRA project to use Vite instead"
**Actions:**
1. Install Vite and `@vitejs/plugin-react`, remove react-scripts
2. Create `vite.config.ts` with React plugin and path aliases
3. Rename `REACT_APP_*` environment variables to `VITE_*`
4. Update `index.html` to reference the entry module directly
**Output:** A Vite-powered React project with faster dev startup and HMR.
### Example 2: Configure optimized production build
**User request:** "Set up Vite build with vendor chunk splitting and source maps for Sentry"
**Actions:**
1. Configure `build.rollupOptions.output.manualChunks` to separate vendor libraries
2. Enable `build.sourcemap` for error monitoring integration
3. Set `build.target` appropriate to browser support requirements
4. Add `build.assetsInlineLimit` tuning for small asset optimization
**Output:** An optimized production build configuration with proper chunk splitting and debugging support.
## Guidelines
- Always use `import.meta.env.VITE_*` for client-exposed env vars, never `process.env`.
- Configure `resolve.alias` with `@` prefix mapping to `src/` for clean imports.
- Split vendor chunks manually when default chunking produces too many small files.
- Use `build.target: "esnext"` for modern-only apps, `@vitejs/plugin-legacy` for legacy browser support.
- Enable `build.sourcemap` in production for error monitoring tools.
- Keep `vite.config.ts` clean by extracting complex plugin configs into separate files.
- Use `optimizeDeps.include` to pre-bundle problematic dependencies that break during dev.
No comments yet. Be the first to comment!