vite常见面试问题

一、Vite 核心原理

1. Vite 为什么比 Webpack 快?

答案:
Vite 的核心优势在于开发环境生产环境的双重优化:

  • 开发环境
    • 基于原生 ESM(ES Modules):浏览器直接加载 ES 模块,无需打包,启动时间极短(毫秒级)。
    • 按需编译:仅编译当前页面所需的模块,而非整个项目。
    • 预构建依赖:使用 esbuildnode_modules 进行预编译(比 Babel 快 10-100 倍)。
  • 生产环境
    • 使用 Rollup 进行打包,输出更优化、更精简的代码。

对比 Webpack

特性 Vite Webpack
启动 毫秒级(按需编译) 秒级(全量打包)
HMR 极快(基于 ESM) 较慢(依赖重建依赖图)
构建 Rollup(高效 Tree Shaking) 自研打包机制

2. Vite 的热更新(HMR)是如何工作的?

答案:
Vite 的 HMR(Hot Module Replacement)实现机制:

  1. 基于 WebSocket:Vite 服务器与浏览器建立长连接,监听文件变化。
  2. 精准更新:仅重新编译修改的文件,并通过 ESM 动态替换。
  3. Vue/React 深度优化
    • Vue:单文件组件(SFC)可单独更新 <template><script><style>
    • React:支持 Fast Refresh,保持组件状态。

代码示例(手动 HMR API)

if (import.meta.hot) {
   
   
  import.meta.hot.accept('./module.js', (newModule) => {
   
   
    console.log('模块更新:', newModule);
  });
}

二、Vite 配置与优化

1. 如何配置多环境变量?

答案:
Vite 使用 .env 文件管理环境变量:

.env            # 全局默认
.env.development # 开发环境
.env.production  # 生产环境

配置方式

// vite.config.js
import {
   
    defineConfig, loadEnv } from 'vite';

export default defineConfig(({
    
     mode }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香蕉可乐荷包蛋

努力写有用的code

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值