美文网首页webpackjs css htmlvue
vite技术揭秘--hmr(客户端的建立与连接)

vite技术揭秘--hmr(客户端的建立与连接)

作者: 习惯水文的前端苏 | 来源:发表于2022-09-03 08:51 被阅读0次

\bullet 前言

    上一节,我们分析了实现hmr的核心步骤,但是对其实现细节只字未提,本节就着重来看向hmtl塞client.js的过程

\bullet 思考

    抛开源码不谈,我想大部分人的实现思路肯定是这样的:获取html文件,生成script标签并添加进源码,然后再在node端监听特定的请求,像去年我手写的简易cli工具就是秉持这一思路

\bullet 源码

    上一节已经提到过,vite中是利用中间件对.html文件的请求做了拦截

    \ast 获取文件路径

        当拦截到后会先获取html的文件绝对路径,即C:/Users/11574/Desktop/xxx/vite-learn/index.html

    \ast 获取源码

        此时的html源文件如下

    \ast 定义生成标签所需内容

    \ast 组装成script标签插入源码,最后使用res.send将修改后的源码返回

    \ast 监听@vite/client请求

        目前为止,我们只是插入了script标签,并利用其src属性建立了请求,还需要对该请求做出响应才行

        显然这是一类请求,出于模块化需要,作为一个中间件进行注册

        根据保存的模块依赖找到对应的文件位置

        这里涉及到插件的运行机制,不过本质上还是使用的nodeApi作读取,然后将code,也就是本地的client.js的代码作为响应返回给浏览器即可

相关文章

  • vite技术揭秘--hmr(客户端的建立与连接)

    前言 上一节,我们分析了实现hmr的核心步骤[https://www.jianshu.com/p/a3c4fb...

  • vite技术揭秘--hmr(消息派发与处理)

    前言 上一节[https://www.jianshu.com/p/63bae27e585e],已经比较详细的了...

  • vite技术揭秘--hmr(热更新概览)

    前言 热更新应该算是vite的核心能力之一了,因此分多篇,由浅入深的分析是有必要的,本节仅了解其核心实现过程 ...

  • Web 服务器

    实际的 Web 服务器会做些什么 建立连接——接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭。...

  • vite HMR api

    vite 启动热更新,dev server的信息存储在内置变量hot属性里。 hot的定义参照声明文件: acce...

  • Web 服务器

    实际的Web服务器会做些什么? 1.建立连接,接受一个客户端的连接,或者如果不希望与这个客户端建立连接,就将其关闭...

  • redis缓存命令处理实现原理

    Redis服务器负责与多个客户端建立连接,处理客户端请求,保存各个数据库状态。使用由I/O多路复用技术实现的事件处...

  • vite技术揭秘--alias

    前言 alias作为锦上添花的东西,不仅能提高开发效率,也有利于后续迭代维护 在看源码前,我的思路是这样的...

  • HTTP相关知识点

    HTTP 的工作原理是什么? 客户端与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。 建立连接后,...

  • 小马哥网络课笔记20------TCP之建立连接

    3次握手 客户端与服务器通信前需要经历3次握手建立连接。1、第1次握手客户端告诉服务器我想建立连接2、第2次握手是...

网友评论

    本文标题:vite技术揭秘--hmr(客户端的建立与连接)

    本文链接:https://www.haomeiwen.com/subject/hbaqnrtx.html