学习vite笔记4(vite架构思考)

118 阅读1分钟

Vite底层使用了哪两个构建引擎?

vite底层所深度使用的两个架构引擎分别是EsbuildRollup

简要列举Esbuild在Vite的构建体系中发挥了哪些作用?

1、开发阶段的依赖预构建阶段,作为Bundle工具,将第三三方依赖包在应用启动前进行打包,并且转换为ESM格式

2、对单文件TS(X)/JS(X)单文件编译上面,Vite也使用Esbuild进行语法编译,将Esbuild作为Transformer来用

3、代码压缩阶段,作为压缩工具来进行生产环境的代码压缩,包括js和css

Esbuild作为打包工具存在什么缺点?

1、不支持降级到ES5代码,在低端浏览器代码会跑不起来 2、不支持 const enum 等语法,单独使用这些语法在esbuild中会直接抛错 *3、不提供操作打包产物的接口,灵活处理打包产物的能力不具备 4、不支持自定义拆包策略API

Rollup在vite中都扮演什么角色?

1、生产环境打包的作用

Vite在生产环境中,对Rollup的打包能力进行了哪些扩展优化?

1、CSS代码分割

2、自动预加载 vite会自动为入口chunk的依赖自动生成预加载标签 <link rel="moduelpreload">

适当预加载的做法会让浏览器提前下载好资源,优化页面性能

3、异步Chunk加载优化

Vite如何做到兼容Rollup插件写法的?

Vite 的做法是从头到尾根植于的 Rollup 的生态,设计了和 Rollup 非常吻合的插件机制