- 博客(3)
- 收藏
- 关注
原创 Markdonw语法
本文先回顾了上篇文章的插件化架构的缺点——有复用性,但可扩展的粒度太大,复用性不高。然后分析了模块处理的整个流程,分为解析模块。加载模块、转换模块。然后分析出之前的几个转换模块的中间件,其实只是在转换模块流程中不同,其他的流程都是相同的。因此我们把转换流程,单独提取出来,插件通过提供transform钩子,来扩展Vite的转换模块能力。用一个中间件负责模块的转换,在中间件中分别调用各个插件的transform钩子。这样就实现了基于处理流程粒度的扩展机制。Candy的修仙秘籍https。...
2022-07-25 20:38:05
168
1
原创 手把手教你手写一个 Vite Server(一)
之前写过几篇 Vite 的文章,对 Vite 的概念也有一定的理解了,但理解归理解,仍然觉得很虚,也不知怎么的,这几个概念突然就变成一个这么强大的工具。。。于是,我决定自己手写一遍 Vite,这样才有实在感,而且为了往往要考虑兼容各种情况,源码往往会非常复杂,不利于理解。那么这时候,手写一遍,去掉这些兼容逻辑、边界判断等,只关注核心逻辑,就能进一步地加深理解。本文是这个系列的第一篇文章,在本篇文章中,我们先不关注 Vite 的架构,因为我们得先有个东西出来,对于很多人来说,空谈架构是不行的。因此,我们
2022-07-04 22:09:45
385
原创 Vite 是如何兼容 Rollup 插件生态的
我们知道,Vite 开发时,用的是 esbuild 进行构建,而在生产环境,则是使用 Rollup 进行打包。Vite 官方文档已经做出解析:尽管原生 ESM 现在得到了广泛支持,但由于嵌套导入会导致额外的网络往返,在生产环境中发布未打包的 ESM 仍然效率低下(即使使用 HTTP/2)。为了在生产环境中获得最佳的加载性能,最好还是将代码进行 tree-shaking、懒加载和 chunk 分割(以获得更好的缓存)虽然 快得惊人,并且已经是一个在构建库方面比较出色的工具,但一些针对构建应用的重要功能仍然还
2022-06-15 23:04:20
1141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人