name: vite description: "Vite next-gen frontend tooling: dev server, HMR, build, config, plugins, Environment API, Rolldown. Use when setting up or running a Vite project, configuring vite.config.*, authoring plugins, working with HMR or JS API, or managing environment variables and modes. Keywords: vite.config, bundler, Vite, HMR, Rolldown." metadata: version: "8.0.16" release_date: "2026-06-01"
Vite
Quick navigation
- Getting started: references/getting-started.md
- Philosophy and rationale: references/philosophy.md, references/why-vite.md
- Features: references/features.md
- CLI: references/cli.md
- Plugins (usage): references/using-plugins.md
- Plugin API: references/api-plugin.md
- HMR API: references/api-hmr.md
- JavaScript API: references/api-javascript.md
- Config reference: references/config.md
- Dependency optimization: references/dep-pre-bundling.md
- Assets: references/assets.md
- Build: references/build.md
- Static deploy: references/static-deploy.md
- Env & modes: references/env-and-mode.md
- SSR: references/ssr.md
- Backend integration: references/backend-integration.md
- Troubleshooting: references/troubleshooting.md
- Performance: references/performance.md
- Rolldown: references/rolldown.md
- Migration: references/migration.md
- Breaking changes: references/breaking-changes.md
- Environment API: references/api-environment.md
- Environment instances: references/api-environment-instances.md
- Env plugins: references/api-environment-plugins.md
- Env frameworks: references/api-environment-frameworks.md
- Env runtimes: references/api-environment-runtimes.md
Core rules
- Prefer minimal configuration; extend only as needed.
- Keep
index.htmlas a first-class entry point when using Vite defaults. - Treat dev server settings and build settings separately.
- Document mode-dependent behavior for env variables and
define. - Use
futureconfig to opt-in to deprecation warnings before migration.
Recipes
- Scaffold a project with
npm create vite@latest. - Configure aliases, server options, and build outputs in
vite.config.*. - Load
.envvalues into config withloadEnvwhen config needs them. - Add plugins with
plugins: []and defineapplyorenforcewhen needed. - Use HMR APIs for fine-grained updates when plugin or framework needs it.
- Use
optimizeDeps.include/excludewhen deps aren't discovered on startup. - Use
build.rollupOptions.inputfor multi-page apps. - Enable deprecation warnings:
future: { removeSsrLoadModule: 'warn' }. - Use
hotUpdatehook instead ofhandleHotUpdatefor environment-aware HMR. - Use
this.environmentinstead ofoptions.ssrin plugin hooks.
Release Highlights (8.0.0)
- Default browser target is raised again under
baseline-widely-available. - CommonJS default-import interop becomes more consistent and may expose packages that relied on older ambiguous behavior.
- Vite stops resolving
browservsmodulevia format sniffing and follows configuredresolve.mainFieldsmore strictly. - JS API
build()now throwsBundleErrorwith nested.errorswhen multiple Rolldown-level errors are present. - Rolldown transition becomes more explicit:
build.rollupOptions/worker.rollupOptionsare deprecated in favor of*.rolldownOptions.
Patch Notes (8.0.14 -> 8.0.16)
- Rolldown moves to
1.0.3(was1.0.2in8.0.14); if you maintain plugin or build guidance, validate it against the current Rolldown behavior instead of assuming early8.0.xpatch semantics. - Dev server now sends HTTP
408on request timeout instead of hanging the connection (8.0.15). launch-editor-middlewarerejects UNC paths and Windows alternate paths, closing a local path-traversal vector (8.0.16); relevant if you expose the dev server beyond localhost.8.0.15fixes:/@fs/HTML-proxy cache-key mismatch, relative-glob-in-virtual-module errors when no files match, closing the Rolldown bundle whenwrite()rejects, andonWarnforviteResolvePluginin JS plugin containers.transformIndexHtmlhandles trailing-slash paths more reliably, which matters for plugins and static deploy setups that rewrite or inject HTML on directory-style URLs.- Dependency scanning now passes Oxc JSX options through the optimizer path, so JSX-heavy linked dependencies should behave closer to the main transform pipeline.
Prohibitions
- Do not copy large verbatim chunks from vendor docs.
- Do not assume framework-specific behavior without verifying.