关于vite:Vite-源码解读系列图文结合-构建篇

42次阅读

共计 1449 个字符,预计需要花费 4 分钟才能阅读完成。

哈喽,很快乐你能点开这篇博客,本博客是针对 Vite 源码的解读系列文章,认真看完后置信你能对 Vite 的工作流程及原理有一个简略的理解。

Vite 是一种新型的前端构建工具,可能显著晋升前端开发体验。

我将会应用图文联合的形式,尽量让本篇文章显得不那么干燥(显然对于源码解读类文章来说,这不是个简略的事件)。

如果你还没有应用过 Vite,那么你能够看看我的前两篇文章,我也是刚体验没两天呢。(如下)

  • Vite + Vue3 初体验 —— Vite 篇
  • Vite + Vue3 初体验 —— Vue3 篇

本篇文章是 Vite 源码解读系列的第二篇文章,往期文章能够看这里:

  • Vite 源码解读系列(图文联合)—— 本地开发服务器篇

本篇文章解读的次要是 vite 源码本体,上一篇文章中提到 vite 通过 connect 库提供开发服务器,通过中间件机制实现多项开发服务器配置。而 vite 在本地开发时没有借助 webpack 或是 rollup 这样的打包工具,而是通过调度外部 plugin 实现了文件的转译,从而达到小而快的成果。

本篇文章,我会针对 vite 的生产产物构建,也就是 vite build 命令进行具体解析。

好了,话不多说,咱们开始吧!

vite build

在运行 vite build 命令时,外部调用了 doBuild 办法,该办法最终应用 rollup 来进行利用构建。

resolveConfig

和本地开发服务相似,doBuild 第一步先进行了配置信息的收集。在这一步中,resolveConfig 办法做了这几件事件:

  • 解决插件执行程序
  • 合并插件配置
  • 解决 alias
  • 读取环境变量配置
  • 导出配置

最终将配置导出后,用于接下来的构建操作,上面是导出的配置详情,感兴趣的同学能够本人打断点查看。(如下图)

接下来,是对一些变量的定义,以及输入以后 vite 版本。(如下图)

配置项阐明
config.buildvite 的构建选项
input我的项目入口文件,默认是我的项目根目录下的 index.html
outDir构建产物的输入目录
ssr生成面向 SSR 的构建
libOptions/lib构建为库时才须要

整合插件

而后,vite 整合了我的项目配置的插件和 vite 自带的插件,用于后续 rollup 的编译工作。(如下图)

生成 rollup 配置

接下来,vite 将用户传入的 rollup 选项配置与默认配置进行合并,合并后构建了一个 rollOptions,提供给 rollup 打包应用。(如下图)

接下来,vite 配置了输入配置,次要分为三类 ssr库模式 一般利用模式。(如下)

接下来,vite 外部解决了 watch 属性,提供了构建时的监听属性反对。

编译产物

最初,vite 应用 rollup 编译文件,而后将这些文件输入到指定的构建产物目录中。(如下图)

最初,将这些 bundle 合并输入后,就生成了构建后的产物,能够应用 vite preview 来进行预览查看成果。

小结

到这里,vite build 的源码局部就解析完了,这部分代码要比 vite dev 简略很多。

咱们还是画一个简略的流程图来总结一下吧。(如下图)

vite 源码解读系列,咱们还剩下贯通全文的插件(plugin)体系还没有进行解析,而 rollup 也是通过调用插件 plugin 实现的编译。

下一章,咱们将对 vite plugin 进行解析,对最罕用的 @vitejs/plugin-vue 插件进行解析。

最初一件事

如果您曾经看到这里了,心愿您还是点个赞再走吧~

您的点赞是对作者的最大激励,也能够让更多人看到本篇文章!

如果感觉本文对您有帮忙,请帮忙在 github 上点亮 star 激励一下吧!

正文完
 0