大数跨境
0
0

「正方说」前端构建工具--Vite入门与应用(二)

「正方说」前端构建工具--Vite入门与应用(二) 正方股份
2022-03-17
0
导读:作者:高凡前端总监

前端构建工具

--Vite入门与应用(二)

作者:高凡

前端总监


Vite

Optimize

Vite 还提供了一个目前在帮助列表中并没有呈现的一个子命令:optimize。

这个命令的作用就是单独的去「优化依赖」。

所谓的「优化依赖」,指的就是自动去把代码中依赖的第三方模块提前编译出来。

例如,我们在代码中通过 import 载入了 vue 这个模块,那通过这个命令就会自动将这个模块打包成一个单独的 ESM bundle, 放到node_modules/.vite_opt_cache目录中。

这样后续请求这个文件时就不需要再即时去加载了。


HMR

同样也是模式的问题,热更新的时候,Vite 只需要立即编译当前所修改的文件即可,所以响应速度非常快。

而 Webpack 修改某个文件过后,会自动以这个文件为入口重写 build 一次,所有的涉及到的依赖也都会被加载一遍,所以反应速度会慢很多。


Build

Vite 在生产模式下打包,需要使用 vite build 命令。

这个命令内部采用的是 Rollup 完成的应用打包,最终还是会把文件都提前编译并打包到一起。

对于 Code Splitting 需求,Vite 内部采用的就是原生 Dynamic imports 特性实现的,所以打包结果还是只能够支持现代浏览器。

不过好在 Dynamic imports 特性是可以有Polyfill的:

https://github.com/GoogleChromeLabs/dynamic-import-polyfill

也就是说,只要你想,它也可以运行在相对低版本的浏览器中。


打包 or 不打包

Vite 的出现,引发了另外一个值得我们思考的问题:究竟还有没有必要打包应用?

之前我们使用 Webpack 打包应用代码,使之成为一个 bundle.js,主要有两个原因:

  1. 浏览器环境并不支持模块化

  2. 零散的模块文件会产生大量的 HTTP 请求

随着浏览器的对 ES 标准支持的逐渐完善,第一个问题已经慢慢不存在了。现阶段绝大多数浏览器都是支持 ES Modules 的。

ES Modules支持的浏览器一览图

零散模块文件确实会产生大量的 HTTP 请求,而大量的 HTTP 请求在浏览器端就会并发请求资源的问题;

在 HTTP 1.1 的标准下,每次请求都需要单独建立 TCP 链接,经过完整的通讯过程,非常耗时;

而且每次请求除了请求体中的内容,请求头中也会包含很多数据,大量请求的情况下也会浪费很多资源。

但是这些问题随着 HTTP 2 的出现,也就不复存在了。

关于 HTTP 1.1 与 HTTP 2 之间的差异,可以通过这个链接体验:https://http2.akamai.com/demo ,直观感受下 HTTP/2 比 HTTP/1 到底快了多少。

而且不打包也有一个好处,就是可以把按需加载实现到极致。

关于 HTTP 2 的详细介绍,可以参考:

  • https://blog.fundebug.com/2019/03/07/understand-http2-and-http3/

  • https://www.digitalocean.com/community/tutorials/http-1-1-vs-http-2-what-s-the-difference


开箱即用

  • TypeScript - 内置支持

  • less/sass/stylus/postcss - 内置支持(需要单独安装所对应的编译器)


小结

Vite 带来的优势主要体现在提升开发者在开发过程中的体验。

  • Dev Server 无需等待,即时启动;

  • 几乎实时的模块热更新;

  • 所需文件按需编译,避免编译用不到的文件;

  • 开箱即用,避免各种 Loader 和 Plugin 的配置。


好的前端构建工具的出现,正是为了解决系统质量和效率低下的问题。但是新技术说到底也只是工具,真正资深程序员的核心价值在于:逻辑、分析、数据、算法等抽象能力。技术工具只是这些抽象能力的表现形式。从汇编语言转到 C 语言,其实更能发挥 C 的强大控制能力;从 C 转到 Java,只需要理解面向对象和虚拟机就能很快适应并脱颖而出;从 Java 转到 Python 的程序员,甚至都会感叹写代码“太简单了”!

无论是跑步还是写代码,都是在探索生命的种种可能。不去跑,永远不知道能跑多远;不去做,永远不知道能做多好。总之,新技术作为新工具,总能带来新的价值蓝海。如果能把新技术当作机会,保持敏感、好奇和进取的心态,扩展技能树,就能驯服来势汹汹的新技术。希望我们所有人一起共勉。一切皆有可能,奔跑吧,年轻的前端工程师们!!




- END -


往期推荐

「正方说」前端工程化的理解与感悟

▲ 点击图片查看原文


欢迎留言&一键三连

正方股份将定期推送人工智能智慧油田油藏工程软件技能知识专栏,“码”上关注,了解最新油田勘探开发解决方案、人工智能、大数据、Python开发知识等。欢迎业内人士在文章底部留言探讨,点分享、赞和在看,感谢您的“一键三连”!



正方股份


大庆正方软件科技股份有限公司(简称正方股份)创立于2002年,是高新技术企业和黑龙江省双软认证企业,是国内将大数据人工智能技术研发与国内油田主营业务深度融合的信息技术服务公司,从事软件研发、大数据、人工智能、物联网、云应用、技术服务、培训等全序列信息技术服务。


/

/

长按识别二维码

/ 联系方式 /

址:www.dqzfkj.com

电话:0459-5977330

邮箱:wangya@dqzfkj.com

地址:黑龙江省大庆市让胡路区远望大街112号


去分享

点赞

我在看

【声明】内容源于网络
0
0
正方股份
正方股份是国内首家将大数据人工智能技术研发与国内油田主营业务深度融合的高端信息技术服务公司,主营物联网、大数据、人工智能、云应用、软件研发等业务。
内容 32
粉丝 0
正方股份 正方股份是国内首家将大数据人工智能技术研发与国内油田主营业务深度融合的高端信息技术服务公司,主营物联网、大数据、人工智能、云应用、软件研发等业务。
总阅读12
粉丝0
内容32