Vite 的开发环境采用按需编译和原生 ES 模块驱动的架构,与传统打包工具(如 Webpack)有本质区别。以下是其编译流程及对不同文件类型的处理方式:
一、Vite 开发环境核心原理
- 启动服务器:
Vite 启动时不进行全量编译,而是创建一个 HTTP 服务器,监听文件变化。 - 浏览器优先原则:
浏览器直接通过 ES 模块的import语句请求文件(如import './main.ts'),Vite 拦截这些请求并实时编译。 - 按需编译:
只有当浏览器请求某个模块时,Vite 才会对其进行编译(如 TS 转 JS、Less 转 CSS),并返回处理后的结果。
二、不同文件类型的处理流程
-
Less 文件处理
请求拦截:当浏览器请求.less文件时,Vite 拦截该请求。
编译:使用less编译器将 Less 转换为 CSS。
注入:将 CSS 通过 JavaScript 动态注入到页面的