From 82c0f31cae5b868be9686c116b14e534bc0ecbdb Mon Sep 17 00:00:00 2001 From: cirry <812852553@qq.com> Date: Fri, 26 Jun 2026 17:56:46 +0800 Subject: [PATCH] =?UTF-8?q?vite=E9=9D=A2=E8=AF=95=E9=A2=98=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .reasonix/desktop-topic-title-sources.json | 4 +- .reasonix/desktop-topic-titles.json | 4 +- docs/vite.md | 617 +++++++++++++++++++++ plugins/plugin-hooks.js | 533 ++++++++++++++++++ plugins/plugin-noconsole.js | 17 + reasonix.toml | 2 +- vite.config.js | 18 +- 7 files changed, 1176 insertions(+), 19 deletions(-) create mode 100644 docs/vite.md create mode 100644 plugins/plugin-hooks.js create mode 100644 plugins/plugin-noconsole.js 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 发给浏览器。浏览器通过 `