- Published on
所有文章
所有文章
- 源代码 (17)
- vite (13)
- react (11)
- swift (5)
- react-hooks (5)
- 杂 (4)
- nginx (4)
- linux-command (3)
- python (3)
- git (3)
- 个人博客 (2)
- 读书笔记 (2)
- wget (2)
- linux (2)
- wwdc (2)
- 翻译 (2)
- ios (2)
- game (2)
- laya (2)
- layabox (2)
- wireshark (2)
- webpack (2)
- nextjs (2)
- 架构 (2)
- unix环境高级编程 (1)
- curl (1)
- file-format (1)
- tcpdump (1)
- homebrew (1)
- ssh (1)
- linux-commands (1)
- http-request (1)
- host (1)
- 计划 (1)
- 读书 (1)
- 运行时 (1)
- autolayout (1)
- swift-language-code (1)
- 游戏开发 (1)
- layaairide (1)
- list (1)
- 列表 (1)
- fastlane (1)
- match (1)
- flask (1)
- gzip (1)
- http2 (1)
- 前端 (1)
- 置顶 (1)
- 博客 (1)
- 进程 (1)
- 计算机网络 (1)
- 性能优化 (1)
- css (1)
- 命令行 (1)
- react-portal (1)
- less (1)
- immerjs (1)
- 原理 (1)
- proxy (1)
- writings (1)
- book (1)
- reflection (1)
- multi-author (1)
- next-js (1)
- feature (1)
- Published on
这个`src/client/client.ts`是HMR的客户端,我们之前提到过,HMR是通过WebSockets来做的,那它肯定是需要一个客户端和一个服务端的,通常就是客户端来连接服务端,然后服务端在特定条件下发送消息,客户端接收并处理消息,我们来看下代码主结构:- Published on
这个`serverPluginCss`是用来处理CSS文件的,因为在vite里面CSS(包括SCSS这种预处理器)和JSON都被处理成JS module,然后再由HTML里面注入的`src/client/client.ts`来更新页面。- Published on
这个`serverPluginClient`是HMR的一部分,它是负责在注入客户端WSS代码的时候,替换里面的协议域名和端口号,这些数据是从配置里面读取的。- Published on
这个`serverPluginModuleResolve`文件也是vite 1.0里面非常重要的一个文件,我们需要仔细分析一下,整体结构如下:- Published on
这个`serverPluginModuleRewrite`文件是vite 1.0里面非常重要的一个文件,我们需要仔细分析一下,整体结构如下:- Published on
这个`serverPluginServeStatic`文件的作用就是读取硬盘上的文件并返回。我们可以看下代码:- Published on
通常我们开发的网站,第一次加载的就是HTML页面,vite会改写这个HTML,这是通过`src/node/server/index.ts`里面的`htmlRewritePlugin`来实现的。- Published on
首先入口文件是`bin/vite.js`,那`bin/vite.js`又是调用的`../dist/node/cli`,这个脚本是在我们编译之后才会有的。具体的编译方法,我们可以参考`package.json`里面的`scripts`。- Published on
解读准备主要是要能够修改源代码,然后用我们修改后的代码来运行一个test程序,知道具体运行过程中的一些数据,验证我们的推想。