国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Skypack:我老早就在布局前端基建了

開發(fā) 前端
Skypack首次發(fā)布于19年6月(曾用名Pika CDN),是一款「基于ESM規(guī)范的CDN服務」。

大家好,我卡頌。

已經有越來越多前端開發(fā)者放棄webpack,改用vite作為項目打包工具。

其中最主要的原因是 —— vite在開發(fā)環(huán)境基于ESM規(guī)范實現(xiàn)的Nobundle模式,節(jié)省了「代碼打包」的時間(當然,也有ESBuild的功勞)。

而在生產環(huán)境,當前仍有打包的需求。

隨著瀏覽器的迭代,ESM規(guī)范兼容性越來越好,終有一天會進入「生產環(huán)境大面積可用」的狀態(tài)。

圖片

ESM規(guī)范兼容性

屆時「生產環(huán)境打包」將不再是剛需。

另一方面,從HTTP協(xié)議的角度看,在HTTP/1.1時代,多個模塊被打包成一個文件能減少「瀏覽器并發(fā)請求數(shù)」,達到優(yōu)化目的。

但在HTTP/2多路復用普及后,這么做的意義就不大了。

可以說,當這些基建成熟后,生產環(huán)境使用ESM模塊是水到渠成的事情。

很多團隊預感到這點,很早就開始布局相關產品。今天要介紹的Skypack就是這樣一款產品。

不一樣的CDN

Skypack首次發(fā)布于19年6月(曾用名Pika CDN),是一款「基于ESM規(guī)范的CDN服務」。

在瀏覽器中,常見的CDN服務通常以script標簽的形式引入UMD規(guī)范的代碼,以ReactDOM舉例:

<script crossorigin src="https://unpkg.com/react-dom@18.2.0/umd/react-dom.development.js"></script>

代碼執(zhí)行后會在全局暴露對象window.ReactDOM。

一些情況下,一個包還會依賴其他包,比如ReactDOM還會依賴如下3個包:

  • React
  • scheduler
  • object-assign

為了應對這種情況,在生產環(huán)境開發(fā)者通常會將第三方依賴統(tǒng)一打包。

而Skypack以ESM規(guī)范引入代碼:

// 在業(yè)務代碼中引入如下語句
import ReactDOM from 'https://cdn.skypack.dev/react-dom';

瀏覽器會依次發(fā)起對「包及其依賴」的請求:

圖片

配合上瀏覽器的Module Preload[1]特性,可以讓這些資源統(tǒng)一預加載。

這就解決了第三方依賴需要打包的問題。

按需polyfill

如果你訪問上述CDN鏈接(https://cdn.skypack.dev/react-dom),會發(fā)現(xiàn)返回的結果并不是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規(guī)范的ReactDOM代碼。

之所以這么做是因為:Skypack會根據(jù)「目標瀏覽器的UA」為瀏覽器提供適合的包。

在高版本Chrome中的代碼不需要polyfill,而在低版本IE中的代碼需要polyfill,所以不同目標瀏覽器拿到的是不同的ReactDOM代碼。

上述export語句中哈希(oZ1BXZ5opQ1DbTh7nu9r)的不同就對應「同一個版本的ReactDOM經過不同程度polyfill后的不同結果」。

此外,在url后加min能得到「壓縮后的代碼」:

import ReactDOM from 'https://cdn.skypack.dev/react-dom?min';

接下來讓我們看看Skypack是如何處理請求的。

處理請求的流程

并不是所有包都有ESM規(guī)范的產物(React就沒有),當以如下url格式訪問任意包時:

// xxx替換為任意包名
import React from 'https://cdn.skypack.dev/xxx';

如果之前從未有人訪問過這個包,則會「構建包及其依賴的ESM產物」并返回。

比如ReactDOM本身只提供UMD規(guī)范的產物,第一個訪問他的Skypack CDN鏈接的用戶會經歷如下步驟:

  • 收集ReactDOM及其依賴。
  • 將ReactDOM及其依賴變?yōu)镋SM規(guī)范。
  • 構建不同polyfill程度的ESM產物。
  • 根據(jù)目標瀏覽器UA返回對應的ReactDOM。

在ReactDOM的產物代碼中可以看到,他依賴的三個包已經轉為ESM規(guī)范:

圖片

總結

除了Skypack外,esm.sh[2]也是類似功能的ESM CDN服務。

等到前端基建成熟的那天,相信這些ESM CDN服務一定能大放異彩。

參考資料

[1]Module Preload:https://developer.chrome.com/blog/modulepreload/。

[2]esm.sh:https://esm.sh/。

責任編輯:姜華 來源: 魔術師卡頌
相關推薦

2023-03-26 10:35:07

2017-01-12 19:59:25

Android注解詳解枚舉

2022-04-10 10:42:44

CSS前端前端布局

2018-12-07 09:12:32

2021-01-29 10:57:57

新基建政策解讀智慧物流

2020-11-09 12:32:27

5G

2023-07-14 12:02:29

2023-01-08 21:05:45

數(shù)據(jù)預警模型

2020-08-04 10:26:39

數(shù)據(jù)中心新基建技術

2024-08-23 12:04:11

2020-05-12 14:20:47

GitHub 系統(tǒng)微軟

2020-09-02 11:43:24

開發(fā)技能代碼

2020-05-07 17:52:26

5G新基建技術

2010-08-25 10:27:35

代碼

2010-08-25 11:29:07

代碼

2021-01-26 10:29:06

前端開發(fā)技術

2017-05-24 10:12:54

前端FlexboxCSS3

2022-10-26 09:03:08

致態(tài)

2013-07-27 15:04:48

2024-05-15 11:42:33

FlutterWeb 庫應用程序
點贊
收藏

51CTO技術棧公眾號

国产精品17p| 粉嫩绯色av一区二区在线观看| 国产精品一区而去| 国产成人精品亚洲日本在线桃色 | 中文日韩在线| 精品少妇一区二区三区在线| 亚洲h精品动漫在线观看| 啊啊啊久久久| 成人激情黄色网| www.欧美色图| 欧美人体视频xxxxx| 国产精品久久久久久久app| 国产成人av影院| 国产二区视频在线观看| 久久视频国产精品免费视频在线| 亚洲人成在线影院| av免费看大片| 在线观看日韩www视频免费| 9191国语精品高清在线| 国产aaaaa毛片| 亚洲精品成人久久电影| 欧美午夜一区| 午夜电影福利| 欧美精品在线观看| 国产精品一区二区视频| 超碰个人在线| 96pao国产成视频永久免费| 亚洲欧洲在线观看av| 久久日本片精品aaaaa国产| 色之综合天天综合色天天棕色 | 色婷婷香蕉在线一区二区| 久久久久久亚洲精品美女| 视频一区二区三区免费观看| 欧美性生交大片免费| 欧美电影在线观看免费| www..com日韩| 亚洲精品久久久久久久久久久久| 亚洲激情自拍| 黄色在线观看网| 国产日韩综合一区二区性色av| 亚洲国产高清在线观看视频| 肉色欧美久久久久久久免费看| 欧美激情论坛| 欧美日韩久久久久久| 久久久9色精品国产一区二区三区| 成视人a免费观看视频| 国产69精品久久久久9| 久久久亚洲精品一区二区三区| 欧美精品资源| www.国产在线播放| 在线日韩av观看| 国产一区二区h| 一根才成人网| 欧美极品少妇无套实战| 夜夜嗨av色综合久久久综合网| 国产一区二区精品在线观看| 人狥杂交一区欧美二区| 青春草在线视频免费观看| 337p日本欧洲亚洲大胆色噜噜| 三级影片在线观看欧美日韩一区二区 | 超碰个人在线| 欧美日韩国产综合视频在线| 欧美日韩极品在线观看一区| 亚洲成人资源| 99福利在线| 一区二区三区四区久久| 国产亚洲精品日韩| 91视频.com| 精品在线网站观看| 免费看的毛片| 亚洲自拍偷拍福利| 欧美电影影音先锋| 久久精品国产精品亚洲红杏| 桃花岛tv亚洲品质| 久久久噜噜噜www成人网| 美女国内精品自产拍在线播放| 久久久综合视频| 亚洲激情77| 深夜福利在线观看直播| 激情五月综合色婷婷一区二区| 日韩一级高清毛片| 国产在线播精品第三| 四虎在线精品| 男人插曲女人视频免费| 91麻豆桃色免费看| 91精品视频网| 成人午夜伦理影院| 天天操综合520| 一本大道香蕉久在线播放29 | 久久伦理网站| 日韩大陆欧美高清视频区| 成人午夜在线免费| 欧美jizz19性欧美| 国产资源在线播放| 一级二级三级欧美| 北条麻妃一区二区三区中文字幕| 国产精品色噜噜| 911精品美国片911久久久 | 亚洲图片一区二区| 欧美 日韩 国产精品免费观看| 欧美午夜大胆人体| 狠狠爱免费视频| 国产在线精品自拍| 精品国产乱码久久久久久闺蜜| 99久久精品国产毛片| 成人情趣视频| 538视频在线| 成人eeuss影院在线观看| 国产精品国产一区二区| 中文字幕日韩精品有码视频| 亚洲一区二区精品久久av| 日韩电影在线免费| 福利片一区二区| 老司机在线视频二区| 日本男人操女人| 国产精品一区二区三区免费 | 伊人色**天天综合婷婷| 美女av在线免费看| 国产中文字幕第一页| 日韩精品第一页| 亚州国产精品久久久| 91麻豆精品91久久久久同性| 久久综合九色综合97婷婷| 欧美日韩国产高清| 在线欧美激情| 日本在线天堂| 日本新janpanese乱熟| 久久久精品有限公司| 国内揄拍国内精品| 精品日韩在线一区| 亚洲综合一二三区| 国产成人免费av在线| 欧美午夜国产| 清纯唯美亚洲经典中文字幕| av在线中出| 中文资源在线网| 欧美亚洲另类色图| 日产精品高清视频免费| 国产精品九九九| 久久精品中文字幕一区| 91精品国产91热久久久做人人| 日韩一区中文字幕| 国产成人高清在线| 国产日韩亚洲欧美精品| 国产日产一区| 精品国产亚洲一区二区在线观看| 在线观看的网站你懂的| 97香蕉久久| 亚洲人成无码www久久久| 亚洲视频欧美在线| 亚洲影院在线看| 97视频在线观看免费| 亚洲女同性videos| 欧美精品18+| 无吗不卡中文字幕| 国产精品麻豆欧美日韩ww| 国产成人av自拍| 日韩精品电影一区亚洲| 亚洲国产精品日韩专区av有中文| 日韩在线视频一区二区三区| 亚洲一二三四| 影音先锋在线播放| 一区二区三区视频国产日韩| 182午夜在线观看| 国产中文字幕视频在线观看| 亚洲高清不卡一区| 精品无码久久久久国产| 国产日韩综合一区二区性色av| 国内免费精品永久在线视频| 国产一区二区三区高清在线观看| 欧美一区二区三区日韩视频| 欧美午夜激情在线| 亚洲综合色噜噜狠狠| 国产精品国产精品国产专区不片| 99久免费精品视频在线观看| 国产一区二区0| 久草热8精品视频在线观看| 久久国产直播| 亚洲永久免费| 一本色道久久综合亚洲精品不卡| 欧美激情黄色片| 久久99国产精品视频| 精品国产18久久久久久洗澡| 日本一区影院| 日日夜夜精品视频| 日本精品视频| 91精品短视频| 91国内精品白嫩初高生| 日韩中文字幕一区二区高清99| 亚洲欧洲一二区| 国产麻豆一区| 99热播精品免费| www.国产精品| 玖玖精品在线| 国产精品白丝久久av网站| 国产成人午夜性a一级毛片| 91精品美女| 成人看片爽爽爽| 欧亚精品一区| 91久久夜色精品国产按摩|