diff --git a/.reasonix/desktop-topic-title-sources.json b/.reasonix/desktop-topic-title-sources.json index 9579797..0d49143 100644 --- a/.reasonix/desktop-topic-title-sources.json +++ b/.reasonix/desktop-topic-title-sources.json @@ -1,3 +1,5 @@ { - "topic_20260626-084849_ae13b749f70ea556": "auto" + "topic_20260626-084849_ae13b749f70ea556": "auto", + "topic_20260626-085627_e3928116af40710e": "auto", + "topic_20260626-093001_b040128cfc0f086c": "auto" } \ No newline at end of file diff --git a/.reasonix/desktop-topic-titles.json b/.reasonix/desktop-topic-titles.json index 5f9f686..82b8ed8 100644 --- a/.reasonix/desktop-topic-titles.json +++ b/.reasonix/desktop-topic-titles.json @@ -1,3 +1,5 @@ { - "topic_20260626-084849_ae13b749f70ea556": "这个文件中的plugin调用的函数h…" + "topic_20260626-084849_ae13b749f70ea556": "这个文件中的plugin调用的函数h…", + "topic_20260626-085627_e3928116af40710e": "我写这个项目主要是用做面试用的,所以…", + "topic_20260626-093001_b040128cfc0f086c": "帮我在plugins/plugin…" } \ No newline at end of file diff --git a/docs/vite.md b/docs/vite.md new file mode 100644 index 0000000..1fff1a2 --- /dev/null +++ b/docs/vite.md @@ -0,0 +1,617 @@ +# Vite 面试题(含详细解答) + +> 基于本项目的 Vue 3 + Vite + 自定义插件实战经验整理。 + +--- + +## 1. Vite 和 Webpack 在项目开发中有哪些区别? + +这是一道高频面试题,关键不是背概念,而是从**开发体验、构建机制、配置复杂度、生态兼容性**四个维度说清楚。 + +### 1.1 核心差异:开发阶段的模块处理方式 + +**Webpack** 是一个 **Bundle-based** 的构建工具。开发时它会从入口文件出发,递归解析所有依赖,把所有模块打包成一个(或多个)bundle,然后启动 dev server。每次代码变更,它需要重新打包受影响的模块并刷新 bundle,这就是为什么大项目中 Webpack 的 HMR 有时会明显变慢。 + +**Vite** 在开发阶段不走打包流程,而是利用浏览器原生支持的 **ES Module (ESM)**。它直接把 `.vue`、`.ts`、`.jsx` 等源码文件按需编译后通过 ESM 发给浏览器。浏览器通过 `