Vite 基础配置
本项目基于 Vite 构建,Vite 是一个由原生 ES 模块驱动的新型前端构建工具,能够显著提升前端开发体验和构建性能。
配置概览
项目中的 Vite 配置文件位于 [apps/h5-template/vite.config.ts],该文件导出一个函数,根据不同的命令(dev/serve 或 build)和模式(development 或 production)返回相应的配置对象。
ts
export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {
// 配置逻辑
});核心配置项详解
基础配置
ts
base: VITE_PUBLIC_PATH,
root,base: 应用的基础路径,从环境变量VITE_PUBLIC_PATH获取root: 项目根目录
插件配置
ts
plugins: createVitePlugins(viteEnv, isBuild),插件通过 createVitePlugins 函数统一管理,根据环境变量和构建状态动态加载不同插件。
路径别名
ts
resolve: {
alias: [
{
find: '@',
replacement: pathResolve('src')
}
]
},配置路径别名,将 @ 指向 src 目录,方便模块导入。
CSS 配置
ts
css: {
preprocessorOptions: {
scss: {
api: 'modern-compiler',
charset: false,
additionalData: `@use "@/styles/index.scss" as *;`,
modifyVars: {},
javascriptEnabled: true
}
},
postcss: {
plugins: [
autoprefixer({
// 用来给不同的浏览器自动添加相应前缀,如-webkit-,-moz-等等
overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8']
}),
postcssPxToViewProtConfig()
]
}
},- 配置 SCSS 预处理器,启用现代编译器 API
- 自动导入全局样式文件
@/styles/index.scss - 使用 PostCSS 插件:
autoprefixer: 为 CSS 属性添加浏览器前缀postcssPxToViewProtConfig: 处理像素单位转换
开发服务器配置
ts
server: {
host: true,
open: true,
hmr: true, // 开启热更新
port: Number(VITE_PORT),
proxy: createProxy(),
// 预热文件以降低启动期间的初始页面加载时长
warmup: {
// 预热的客户端文件:首页、views、 components
clientFiles: ['./index.html', './src/{views,components}/*']
}
},host: 设置为 true 允许外部访问open: 启动时自动打开浏览器hmr: 开启热模块替换port: 从环境变量VITE_PORT获取端口号proxy: 通过createProxy函数配置代理warmup: 预热关键文件,提升启动速度
构建配置
ts
build: createBuild(viteEnv),构建配置通过 createBuild 函数生成,根据环境变量进行优化。
ESBuild 配置
ts
esbuild: {
// 使用esbuild来构建去掉console和debugger,
drop: mode === 'production' ? ['console', 'debugger'] : []
},在生产环境中移除 console 和 debugger 语句,优化构建结果。
全局常量
ts
define: {
__APP_INFO__: JSON.stringify(__APP_INFO__)
},定义全局常量 __APP_INFO__,包含应用信息和构建时间。
环境变量支持
项目使用 loadEnv 加载环境变量,并通过 wrapperEnv 函数将环境变量转换为配置对象:
ts
const env = loadEnv(mode, root);
const viteEnv = wrapperEnv(env);这使得项目可以轻松地在不同环境中使用不同的配置。
总结
本项目的 Vite 配置充分考虑了移动端 H5 应用的开发需求,包括:
- 路径别名简化模块导入
- CSS 预处理器和后处理器支持
- 移动端像素单位自动转换
- 开发服务器热更新和代理配置
- 生产环境优化(移除调试代码等)
- 环境变量支持实现多环境配置
这些配置使得开发者能够专注于业务开发,而无需过多关注构建配置的细节。