主要观点总结
文章详细介绍了Vite在开发环境和生产环境中对资源的处理方式,包括Vite在开发环境中以原生ESM方式提供源码,让浏览器接管打包程序的部分工作,以及使用HMR(Hot Module Replacement)在不刷新页面的情况下更新代码。在生产环境中,Vite使用Rollup对代码进行打包处理,并配合tree-shaking、懒加载和chunk分割的方式为浏览器提供最后的代码资源。同时,文章还探讨了Vite在实现HMR时的详细过程,包括模块替换、HMR何时发生、HMR客户端以及HMR传播等。最后,文章还介绍了Vite的HMR API和相关的Vite插件。
关键观点总结
关键观点1: Vite开发环境资源处理方式
Vite在开发环境中以原生ESM方式提供源码,让浏览器接管打包程序的部分工作,使用HMR在不刷新页面的情况下更新代码。
关键观点2: Vite生产环境资源处理方式
Vite在生产环境中使用Rollup对代码进行打包处理,配合tree-shaking、懒加载和chunk分割的方式为浏览器提供最后的代码资源。
关键观点3: Vite实现HMR的详细过程
Vite通过模块替换、HMR何时发生、HMR客户端以及HMR传播等步骤实现HMR。
关键观点4: Vite的HMR API和Vite插件
Vite提供了HMR API,如import.meta.hot.accept()、import.meta.hot.dispose()等,同时有对应的Vite插件支持不同语言环境的HMR。
关键观点5: Vite的HMR实现案例
文章通过案例分析,展示了Vite的HMR在不同场景下的工作原理和结果。
文章预览
❝ 幸福的三大要素是:有要做的事(something to do)、有要爱的人(someone to love)、有寄予希望的东西(something to hope for) ❞ 前言 用过 Vite 进行项目开发的同学,肯定听说过, Vite 在开发环境和生产环境是两种不同的资源处理方式。 在开发环境, Vite 以 原生ESM 方式提供源码,让浏览器接管了打包程序的部分工作: Vite 只需要在浏览器请求源码时进行转换并按需提供源码。根据情景动态导入代码,即只在当前屏幕上实际使用时才会被处理。 而在本地开发中,肯定会有本地代码的变更处理,如何最大限度的在不刷新整体页面的情况下,进行代码的替换呢。这就用到HMR [1] 这一特性。而承载 HMR 的部分就是,我们需要在开发阶段启动一个 Dev Server 。体现在代码中就是我们在 Vite 的配置文件- vite.config.ts 中会有一个单独的字段 - server ,更详细的解释可以
………………………………