Vite 入门指南:现代前端构建的标准答案

Vite 用原生 ESM 实现秒级启动与即时热更新。本文走完项目搭建、开发模式原理、CSS 与资源处理、配置定制与 Vitest 测试。

最佳实践
Web 构建模块与工具协作插画

npm create vite@latest 选模板即开工——开发服务器毫秒启动(原生 ESM 免打包),vite build 用 Rollup 出生产产物。vite.config.js 一处配置,插件生态覆盖全部主流框架。

本文涉及 Vite 架构时,以版本区分:Vite 7 及更早版本使用 esbuild/Rollup 的组合;Vite 8 已改用 Rolldown 与 Oxc。旧插件及构建选项迁移请按 Vite 8 迁移文档 检查,不能将旧版本的内部实现当作当前所有版本的行为。

创建项目

npm create vite@latest my-app -- --template react-ts
cd my-app && npm install
npm run dev     # 毫秒级启动

开发模式为什么快

传统打包器启动要构建完整依赖图;Vite 的开发服务器按请求编译:浏览器请求哪个模块就编译哪个——启动时间与项目规模解耦。依赖预打包(esbuild)把 node_modules 的合成模块压平,HMR 精确到文件。

CSS 与资源

import './style.css';              // CSS 直接导入
import logo from './logo.svg';     // 资源返回 URL
import raw from './data.txt?raw';  // ?raw 导入原始内容

CSS Modules(.module.css 自动启用)、Sass/Less(装预处理器即用)、PostCSS 自动读取配置——约定优于配置。

配置定制

// vite.config.js
export default {
  resolve: { alias: { '@': '/src' } },
  server: { proxy: { '/api': 'http://localhost:3000' } },  // 开发代理
  build: {
    rollupOptions: { output: { manualChunks: { vendor: ['react', 'react-dom'] } } },
  },
};

Vitest 测试

npm install -D vitest
import { describe, it, expect } from 'vitest';

describe('utils', () => {
  it('format', () => expect(format(1)).toBe('1'));
});

与 Vite 共享配置与转换管道——测试环境与构建环境行为一致,这是 Jest 方案做不到的。

常见问题(FAQ)

Q:Vite 支持多页应用吗?

支持——build.rollupOptions.input 配多入口。

Q:环境变量怎么用?

import.meta.env.VITE_*(前缀白名单防泄漏)——.env 文件按模式分层(.env.development/.env.production)。

Q:SSR?

Vite 有 SSR API,但常规需求用元框架(Next/Nuxt/SvelteKit)——它们内置了 Vite 式的开发体验。


参考文档

本文依据公开文档整理,示例需按项目依赖版本验证;不将文档中的性能描述视为本项目实测结果。

延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台