Skypack布局前端基建实现过程是什么


这篇文章主要介绍“Skypack布局前端基建实现过程是什么”,在日常操作中,相信很多人在Skypack布局前端基建实现过程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Skypack布局前端基建实现过程是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!已经有越来越多前端开发者放弃webpack,改用vite作为项目打包工具。其中最主要的原因是 ——vite在开发环境基于ESM规范实现的Nobundl免费云主机域名e模式,节省了代码打包的时间(当然,也有ESBuild的功劳)。而在生产环境,当前仍有打包的需求。随着浏览器的迭代,ESM规范兼容性越来越好,终有一天会进入生产环境大面积可用的状态。届时生产环境打包将不再是刚需。另一方面,从HTTP协议的角度看,在HTTP/1.1时代,多个模块被打包成一个文件能减少浏览器并发请求数,达到优化目的。但在HTTP/2多路复用普及后,这么做的意义就不大了。可以说,当这些基建成熟后,生产环境使用ESM模块是水到渠成的事情。很多团队预感到这点,很早就开始布局相关产品。今天要介绍的Skypack就是这样一款产品。Skypack首次发布于19年6月(曾用名Pika CDN),是一款基于ESM规范的CDN服务。在浏览器中,常见的CDN服务通常以script标签的形式引入UMD规范的代码,以ReactDOM举例:代码执行后会在全局暴露对象window.ReactDOM。一些情况下,一个包还会依赖其他包,比如ReactDOM还会依赖如下3个包:Reactschedulerobject-assign为了应对这种情况,在生产环境开发者通常会将第三方依赖统一打包。而SkypackESM规范引入代码:浏览器会依次发起对包及其依赖的请求:配合上浏览器的Module Preload特性,可以让这些资源统一预加载。这就解决了第三方依赖需要打包的问题。如果你访问上述CDN链接(https://cdn.skypack.dev/react…),会发现返回的结果并不是ReactDOM的代码,而是下面两句export语句: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’;语句的背后才是ESM规范的ReactDOM代码。之所以这么做是因为:Skypack会根据目标浏览器的UA为浏览器提供适合的包。在高版本Chrome中的代码不需要polyfill,而在低版本IE中的代码需要polyfill,所以不同目标浏览器拿到的是不同的ReactDOM代码。上述export语句中哈希(oZ1BXZ5opQ1DbTh7nu9r)的不同就对应同一个版本的ReactDOM经过不同程度polyfill后的不同结果。此外,在url后加min能得到压缩后的代码:接下来让我们看看Skypack是如何处理请求的。并不是所有包都有ESM规范的产物(React就没有),当以如下url格式访问任意包时:如果之前从未有人访问过这个包,则会构建包及其依赖的ESM产物并返回。比如ReactDOM本身只提供UMD规范的产物,第一个访问他的Skypack CDN链接的用户会经历如下步骤:收集ReactDOM及其依赖将ReactDOM及其依赖变为ESM规范构建不同polyfill程度的ESM产物根据目标浏览器UA返回对应的ReactDOMReactDOM的产物代码中可以看到,他依赖的三个包已经转为ESM规范:到此,关于“Skypack布局前端基建实现过程是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: thinkphp如何根据设备访问不同模板

今天小编给大家分享一下thinkphp如何根据设备访问不同模板的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 thinkphp根据设备访问不同模…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 03/20 21:05
Next 03/20 21:05

相关推荐