作为 Vite 学习系列文章的开篇,主要介绍一下面对前端的众多构建工具,他们存在的目的是什么?以及 Vite 为什么在众多构建工具中脱颖而出。最后介绍一下 Vite 的整体架构,对 Vite 有一个整体认知。
无论是 webpack, rollup, esbuild 还是 vite,这些构建工具的出现都是为了解决前端工程中的痛点,那么痛点都有哪些呢?
前端模块化规范有很多,比如 CommonJS, ESM, AMD, CMD, UMD 等等,构建工具一方面需要落实这些规范,保证模块的正常加载;另一方面需要需要兼容不同的模块规范,适应不同的执行环境。
对于目前众多前端框架的各种语法,比如 jsx, tsx, vue, svelte 等是无法直接在浏览器中直接运行的,构建工具需要将这些语法全部编译为浏览器能识别的语法。
其次,前端开发中经常遇到各种静态资源,比如图片、字体、样式文件 css, less, scss,这些都是需要构建工具统一转译处理,并产出到最终的构建产物中供浏览器中直接消费。
对于最终上线到线上环境的产物,需要考虑各个浏览器的兼容性、安全性(避免源码泄露,一般需要经过混淆)以及代码体积过大导致出现运行时的性能问题,这些都可以在构建层面进行优化。
开发时的冷启动、热更新时间对开发效率的影响是很大的,一个好的构建工具也应该兼顾到开发效率的提升。
围绕上面这些痛点来看: