Vite构建工具学习

目前常规主要两类构建工具

  • Webpack: 市场份额大,生态成熟
  • Vite: 思想新颖,解决了一些Webpack解决不了的问题,效果也更好,同时也降低了一些负担

Vite

官方地址:https://vitejs.cn/guide/

Vue官方团队出品,未来Vue-cli会将vite作为默认的预设工具

未来使用vue-cli去构建vue项目的时候需要写vue.config.js不再是webpack的配置而是vite的配置(目前只针对于浏览器项目)

同时支持编译react和angular,svelte

什么是构建工具

浏览器他老人家只认识html, css, js三种文件类型,如果使用了各种前端的工具写的代码,浏览器是不认识的,需要进行转换将各种文件转换为js代码。

  1. typescript: 需用tsc将ts转换为js代码
  2. React/Vue: 安装 react-compiler / vue-compiler ,我们写的.jsx或者.vue文件转换为render函数
  3. less/sass/component-style: 又需要安装less-loader, sass-loader等一系列转义工具
  4. 语法降级: 需要在老旧浏览器执行代码,babel –> 将es的新语法转换为旧版浏览器可以接受的语法
  5. 体积优化: uglifyjs 将代码进行压缩,变成体积更小性能更高的文件
  6. and more……

如果没有构建工具,每一次修改代码,都需要上诉所有工具全部重新人工编译一遍,非常耗时耗力而且麻烦。

App.jsx –> tsc –> App.jsx —> React-compiler –> js文件

自然而然的希望有一个工具把上边所有的工具集成,因此就有了构建工具的概念。

> 概念 — 打包:将我们写的浏览器不认识的代码,用工具编译处理的过程叫打包,打包完成之后会生成一个浏览器认识的文件

构建工具的职责

  1. 模块化开发支持:支持直接从node_modules里引入代码,以及多种不同的类型模块化的支持。(比如支持require语法等)
  2. 处理代码兼容性:参考上文(不是构建工具做的,而是构建工具包含了这些语法对应的处理工具集成,自动化处理)
  3. 提高项目性能:比如压缩文件、打包、代码分割
  4. 优化开发体验:构建工具会自动帮你监听文件的变化,当文件变化以后自动调用对应的集成工具进行重新打包,然后再浏览器重新运行(热更新,Hot replacement);
  5. 自动解决开发服务器,跨域的问题,用各种compiler,vli工具解决跨域问题

构建工具让我们不用每次都关心再浏览器如何运行,只需要首次给构建工具提供一个配置文件(这个配置文件也不是必须的,会有默认值),有了这个集成的配置文件,下次需要更新的时候再调用一次对应的命令就行了。如果再结合热更新,就更加不需要管任何东西了,直接ctrl + s保存就行了。

对比Webpack

项目越大,Webpack所需要处理的js越多,往往造成需要几分钟的时间才能跑起来代码(最大缺陷,编译时间,而且还改不了),Webpack的原理就是将不同的模块规范全部用自己的规范组合一遍,因此所有的模块全部都要读一遍转换,因此工作量时间巨大。

Vite干的活:

基于es modules的(你必须要用这个规范的代码),不允许写commonjs的代码,因此vite也取代不了webpackVite 以 原生 ESM 方式提供源码。这实际上是让浏览器接管了打包程序的部分工作:Vite 只需要在浏览器请求源码时进行转换并按需提供源码。根据情景动态导入代码,即只在当前屏幕上实际使用时才会被处理。

  • webpack关注兼容性
  • vite关注浏览器端的开发体验(速度快)

(vite,灰色部分路由不加载,因此速度快)

 

分类: 前端

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注