社区精选 | Skypack:我老早就在布局前端基建了
今天为各位小伙伴推荐的是社区作者 卡颂 的文章,在这篇文章中他介绍了一款基于 ESM 规范的 CDN 服务产品 Skypack,让我们一起来学习吧!
大家好,我卡颂。
已经有越来越多前端开发者放弃 webpack,改用 vite 作为项目打包工具。
其中最主要的原因是 —— vite 在开发环境基于 ESM 规范实现的 Nobundle模式,节省了代码打包的时间(当然,也有 ESBuild 的功劳)。
而在生产环境,当前仍有打包的需求。
随着浏览器的迭代,ESM 规范兼容性越来越好,终有一天会进入生产环境大面积可用的状态。
届时生产环境打包将不再是刚需。
另一方面,从 HTTP 协议的角度看,在 HTTP/1.1 时代,多个模块被打包成一个文件能减少浏览器并发请求数,达到优化目的。
但在 HTTP/2 多路复用普及后,这么做的意义就不大了。
可以说,当这些基建成熟后,生产环境使用 ESM 模块是水到渠成的事情。
很多团队预感到这点,很早就开始布局相关产品。今天要介绍的 Skypack 就是这样一款产品。
不一样的 CDN
Skypack 首次发布于 19 年 6 月(曾用名 Pika CDN),是一款基于 ESM 规范的 CDN 服务。
在浏览器中,常见的 CDN 服务通常以 script 标签的形式引入 UMD 规范的代码,以 ReactDOM 举例:
<script crossorigin src="https://unpkg.com/react-dom@18.2.0/umd/react-dom.development.js"></script>
代码执行后会在全局暴露对象 window.ReactDOM。
一些情况下,一个包还会依赖其他包,比如 ReactDOM 还会依赖如下 3 个包:
React
scheduler
object-assign
// 在业务代码中引入如下语句
import ReactDOM from 'https://cdn.skypack.dev/react-dom';
按需polyfill
export * from '/-/react-dom@v17.0.1-oZ1BXZ5opQ1DbTh7nu9r/dist=es2019,mode=imports/optimized/react-dom.js';
export {default} from '/-/react-dom@v17.0.1-oZ1BXZ5opQ1DbTh7nu9r/dist=es2019,mode=imports/optimized/react-dom.js';
import ReactDOM from 'https://cdn.skypack.dev/react-dom?min';
处理请求的流程
// xxx替换为任意包名
import React from 'https://cdn.skypack.dev/xxx';
收集 ReactDOM 及其依赖
将 ReactDOM 及其依赖变为 ESM 规范
构建不同 polyfill 程度的 ESM 产物
根据目标浏览器 UA 返回对应的 ReactDOM
总结
SegmentFault 思否社区小编说
自 2022-07-01 起 SegmentFault 思否公众号改版啦!之后将陆续推出新的栏目和大家见面!(请拭目以待呀~❤)
在「社区精选」栏目中,我们将为广大开发者推荐来自 SegmentFault 思否开发者社区的优质技术文章,这些文章全部出自社区中充满智慧的技术创作者哦!
希望通过这一栏目,大家可以共同学习技术干货,GET 新技能和各种花式技术小 Tips。
欢迎越来越多的开发者加入创作者的行列,我们将持续甄选出社区中优质的内容推介给更多人,让闪闪发光的技术创作者们走到聚光灯下,被更多人认识。
「社区精选」投稿邮箱:pr@segmentfault.com
投稿请附上社区文章地址
关注公众号:拾黑(shiheibook)了解更多
赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 周星驰 Web3 团队将上线独立 App;Gemini 刚发就惹质疑:效果视频疑似剪辑;Meta 推独立AI图像生成器|极客头条
- 美元兑人民币汇率2023年9月17日
- 日元对人民币汇率2023年8月29日
- ETSI携手6G-IA推进6G标准和服务
- 亿欧智库重磅发布《2022中国信创产业竞争力研究报告》
- 软件定义算力,算力定义汽车
- 利器!微软Build 给开发者的“大礼包”
- 超 38 万个 Kubernetes API 服务器暴露于互联网
- 烽火光纤技术荣获中国发明专利银奖
- 京“吞”德邦,“零担大王”何以至此?
- 2020,拐点之年【宁宇专栏-361】
- 联通冯毅:已在一些场馆进行毫米波试验,速率可达9Gbps