精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

ViteConf 2022回顧:Vite是如何誕生的?

開發 前端
下面就來回顧一下這場演講,看看 Vite 是如何誕生的!下面先來回顧一下在這些構建工具出現之前是如何編寫 Web 頁面的。

大家好,我是 CUGGZ。

ViteConf 2022 于 10 月 11 - 12 日舉行。Vue 和 Vite 的作者尤雨溪發表了名為《How Vite Came to Be》的主題演講。下面就來回顧一下這場演講,看看 Vite 是如何誕生的!

下面先來回顧一下在這些構建工具出現之前是如何編寫 Web 頁面的。

IIFE

Web 開發早期,我們使用 JavaScript 的唯一方式就是在頁面中引入<script>標簽,所有 JavaScript 都在一個共享的全局作用域中解釋執行。默認的方式就是在一個文件中編寫所有業務邏輯:

<script src="app.js"></script>
<script src="module-a.js"></script>
<script src="module-b.js"></script>

當業務變得復雜時,JavaScript 文件就會變得很臃腫,就要考慮把這些文件拆分成幾個小的文件。但當時 JavaScript 并沒有模塊的概念,所有的文件都共享在全局作用域中,這時可能會使用 IIFE(立即執行函數)來分離作用域,不過這樣仍需要通過全局作用域來進行通信,比如通過 window 對象:

;(function() {
var localVar = 1
window.App.foo = {
// ...
}
})()

AMD

之后,一些早期的框架和庫的作者就開始使用自己的模塊加載器,并嘗試將其標準化為 AMD,即 Asynchronous Module Definition(異步模塊定義),Require.js 就是 AMD 的一種。RequireJS 是在開發環境下及時加載和轉化模塊的,可以通過編寫插件來及時編譯代碼,它還支持通過打包命令來構建生產項目。不過,RequireJS 所有的轉化都在瀏覽器端進行,在進行打包時,一些生產環境中不需要的代碼在瀏覽器端也會被打進生產包中。

CommonJS

在 Node.js 興起之后,CommonJS 模塊化規范就成為了 JavaScript 模塊的標準,并且影響至今。

browseify / webpack

因為開發者想要在瀏覽器端使用 Node.js 包,并且想要在瀏覽器和 Node.js 環境中使用同一模塊格式,所以就出現了模塊打包工具,例如 browseify 和 webpack。它們將 CommonJS 模塊組合到一個 bundle 中,然后在頁面尾部的 script 標簽中進行引入。

2013年,尤雨溪開始編寫 Vue,并產生了編寫 SFC 的想法,就是將 template、script、style 編寫在一個文件中來定義組件。可以通過編寫 loaders 來將這些格式轉化為可執行的 JavaScript,這樣編譯的開銷也只會在構建時產生,而不會影響運行時性能。

于是,尤雨溪就在 browseify 和 webpack 中分別編寫了轉化 SFC 的插件:vueify 和 vue-loader,這兩個插件至今仍然適用。

vue-cli

不過,這些構建工具對于大多數開發者而言還是太底層了。當越來越多的初學者嘗試使用這些構建工具時,其實他們對于學習如何配置打包并不感興趣,而是習慣于有一個入口來快速啟動。

于是在2015年,尤雨溪做了 vue-cli,這是一個基于 Webpack 構建的 Vue 腳手架。vue-cli 做了很多如今已經成為標準的工作,例如預配置,即大部分通用功能可以開箱即用。為了達到這樣的配置效果,基于webpack進行構建還是有很大工作量的,并且還要兼顧不同的配置,例如,是否使用 TypeScript,使用哪個測試庫來運行測試用例,以確保這些配置項的不同組合可以正常運行。

除了 vue-cli,create-react-app(React官方腳手架)也使用了相似的配置來處理。值得一提的是,parcel 是第一個提出零配置概念的構建工具。

ES Modules

2015年,JavaScript 終于推出了自己的模塊化標準 ES Modules。從某種程度上說,Vite 正在幫助 JavaScript 生態系統轉向并收斂到 ESM 模塊規范。

隨著 ESM 的推出,基于 ESM 的構建工具出現了。Rollup 是第一個基于 ESM 的打包工具,ESM 是其唯一的模塊標準,這讓 Roolup 的核心代碼非常簡潔高效,但是,Roolup 并不支持熱更新。所以,主流的解決方案,比如 Next.js、create-react-app、vue-cli 都是基于 webpack 的,因為用戶更注重熱更新的開發體驗。

原生 ESM

2017年,瀏覽器終于支持了原生 ESM,這意味著以后可以在瀏覽器中直接使用 ESM 規范,而不是只能在構建時才能使用。

使用原生 ESM 進行構建并且使用 buildless 的方案會存在一些問題,因為有時候確實需要使用構建工具,比如使用 SFC 時,轉化 TypeScript 時,使用 JSX、PostCSS 時,這些都需要一個構建階段來進行處理。

原生 ESM 提供了 fetch 來進行 HTTP 請求,我們可以讓 dev server 無需任何轉化即可正常運行,并且這個 dev server 將會非常輕量,就像靜態文件服務器一樣。

@vue/dev-server

于是,在2019年,尤雨溪創建了 @vue/dev-server,它能夠進行轉化,并且使用原生 ESM 的 import 語法來加載  Vue 的 SFC 組件。然而,這存在兩個問題:

  • 如何處理 npm 依賴。
  • 如何在原生 ESM 中進行熱更新。

由于他一直忙于 Vue 3 的開發工作,就沒有持續跟進這兩個問題。

Vite 0.1

直到一年后,突然想到了如何在原生 ESM 中進行熱更新,然后就開始不斷編碼和測試。Vite 就正式誕生了,它能夠同時轉化并運行 Vue 的 SFC,并且能夠處理原生 ESM 的熱更新。第一個 release 版本的核心邏輯比較粗糙,并且僅支持 Vue組件,因為最初的想法是找到一個輕量的 vue-cli 的替代品。

Vite 0.2

Vite 誕生之后,下一步任務就是從概念驗證階段過渡到重構階段。 在調研中發現,@web/dev-server 也是一個 bundless 的 dev你server。所以,當時的想法就是創建一個支持原生 ESM 熱更新的 dev server。

調研之后,考慮僅把 Vite 作為 ESM 服務器的中間件來使用。但是從更深層次來看,有一個更宏大的愿景,就是把 Vite 作為一個開箱即用的工具,像 Vue 和 parcel 那樣。所以,如果僅把 Vite 作為 dev server 中間件就限制了它的發揮。

在使用完基于 Koa 的 es-dev-server 之后,最初的設想是每一個插件都當做 Koa 的中間件來執行。所以 Vue 轉變了思路,Vue 的插件將會是一個 Koa 中間件。

Vite 0.4

于是,在兩天之后,尤雨溪使用 JavaScript 實現了熱更新,這個過程需要處理通用的 JavaScript 邏輯,以及 npm 依賴的問題。當時選擇了使用 Snowpack 1.0 來進行處理,而現在用 seinstall 代替了 Snowpack。Snowpack 1.0 是基于 Rollup 預配置實現的可以轉化 npm 包的工具,無論是什么格式,轉化為 ESM 之后都能在瀏覽器中正常運行。這就解決了各種模塊規范混用的問題,將它們統一轉化為 ESM 格式,這樣才能在瀏覽器中運行。

Vite 0.5

在 0.5 版本中,為了更好的輸出構建產物,尤雨溪決定繼續在生產環境中使用 Rollup。Vite 成為了一個基于 Rollup 的熱更新 dev server。

VitePress

為了驗證這些插件和API是否是彈性并且可擴展的,來為更多的解決方案賦能,特別是在服務端渲染的場景下。所以,在 Vue 的生態中,提供了一個靜態站點生成器:VitePress,它是一個基于 Vite 的高級別應用。它允許通過路由去編寫 HTML 文件,并且可以在其中引入 Vue 組件。VitePress 還可以用來生成文檔,并提供了服務端渲染的能力,它可以將 markdown 解析成 Vue 組件并編譯它,最后通過服務端渲染生成 HTML。

Vite 1.0 之前

在發布  Vite 1.0 之前, Vite 實現了和 vue-cli 相同的功能,吸引了越來越多的用戶,也因此發現了很多 bug,大多數 bug 都和 npm 依賴以及模塊格式有關。在 2022年4月至11月期間,Vite 發布了 91 個 release 版本。

但是,最終 1.0 版本并未落地,因為在開發 1.0 時,尤雨溪意識到 Vite 并不僅僅是 vue-cli 的替代品,Vite 其實可以做兩件事:

  • 作為與框架無關的最小配置打包工具來提供給用戶,這本質上是一個更通用的 vue-cli,目的是讓每一個框架都能使用;
  • 為框架作者提供一個共享工具層。這樣,對于使用 Nuxt.js、SvelteKit、Next.js 等框架的用戶,無需再重復造輪子,可以專注于更有意義的工作。

Vite 2.0

為了完成上述目標,尤雨溪決定重寫 Vite。2020 年 12 月開始重寫 Vite 2.0。

  • 首要目標就是將 Vite 和框架解耦;
  • 受到 WMR 啟發,選擇了通用 Rollup 兼容插件 API;
  • 受到 SvelteKit 啟發,采用了全新的 SSR 運行時;
  • 使用基于 esbuild 的依賴預打包方案,處理依賴的速度提升近百倍。

最終,在 2021 年 2 月 16日,Vite 2.0 正式發布。

組建團隊

尤雨溪的時間和精力被分散到了 Vite 和 Vue 兩個項目中,仍然需要確保 Vue 可以正常迭代。因此,在 2021 年 3 月正式組建團隊。目前,Vite 的絕大多數的日常維護工作都是由團隊成員完成的, 最近的 Vite 3.0 主要版本也是來自團隊成員的努力。

??相關資源??

  • 演講PPT:https://docs.google.com/presentation/d/1O09rAOu_wRLHVjukVbBeSlRkLeX-dcYZfsdjPiU4kGQ/。
  • 演講視頻:https://viteconf.org/2022/replay/vite_keynote。
責任編輯:姜華 來源: 前端充電寶
相關推薦

2014-11-26 17:24:01

AWSIaaSPaaS

2013-05-20 08:59:24

2010-12-20 13:03:41

NVIDIALinux顯卡驅動

2012-10-23 16:10:52

微軟Office 36PowerShell云服務

2012-05-27 16:30:42

騰訊

2013-12-30 11:09:16

服務器HPC去IOE

2015-03-12 10:19:19

OracleMySQL

2021-01-20 23:53:16

PythonPython 3.9開發

2010-04-01 09:57:15

2009-04-08 11:28:19

IDF歷史IDF簡介

2013-04-08 09:27:20

新聞回顧

2013-06-08 13:52:29

蘋果WWDC2013

2012-12-03 09:53:57

2012-05-17 09:52:19

Linux紅帽

2016-12-12 13:54:37

Xcode誕生macOS

2012-02-07 09:58:27

2013-02-25 02:31:42

2009-11-02 13:45:18

接入網技術

2012-11-16 15:05:31

Google中國

2011-07-22 09:54:56

點贊
收藏

51CTO技術棧公眾號

天天综合狠狠精品| 欧美一级片免费在线| 午夜大片在线观看| 深夜国产在线播放| www.色综合.com| 91av国产在线| 亚洲一二三四五六区| 欧美一区一区| 日韩欧美主播在线| 在线观看亚洲视频啊啊啊啊| 可以免费看毛片的网站| 久久精品一区| 九九热99久久久国产盗摄| 精品无码一区二区三区| 777午夜精品电影免费看| 亚洲自拍偷拍九九九| 农村寡妇一区二区三区| 国产高清免费在线观看| 日精品一区二区| 久久久久久国产三级电影| 手机毛片在线观看| 福利欧美精品在线| 91精品国产一区二区三区蜜臀| 黄色一级片播放| gogo在线观看| 国产三级一区二区| 国产另类自拍| 国产精品久久久久久免费 | 在线无限看免费粉色视频| 天堂网在线观看视频| 激情五月婷婷综合网| 久久香蕉国产线看观看网| 日本一卡二卡在线| 欧美国产日韩电影| 欧美日韩中文在线观看| 最新不卡av| 久久经典视频| aaa欧美色吧激情视频| 国产深夜精品福利| 中文字幕超碰在线| 国产精品www994| 一本久久综合亚洲鲁鲁| 熟妇高潮一区二区| 精品国产乱码一区二区三区 | 久久精品国产2020观看福利| 亚洲国产精品无码久久久久高潮 | 国外av在线| bt7086福利一区国产| 亚洲一区二区三区sesese| 小泽玛利亚一区二区三区视频| 欧美特黄一区| 久久精品国产2020观看福利| 国产精品国产三级国产专业不| 久久动漫网址| 欧美变态tickle挠乳网站| 手机免费看av网站| 日韩成人综合网| 欧美日韩在线一区二区| av动漫免费看| rebdb初裸写真在线观看| 亚洲在线视频一区| 亚洲中文字幕无码一区二区三区| 91在线不卡| 国产亚洲精品中文字幕| 激情小说综合区| 深夜福利在线看| 99精品视频一区二区三区| 国产精品对白一区二区三区| www香蕉视频| 国产一区激情在线| 成人精品在线视频| 国产精品人妻一区二区三区| 久久精品国产第一区二区三区| 国产精品久久久久久久久久ktv| 亚洲自拍一区在线观看| 国产精品一区亚洲| 日韩**中文字幕毛片| wwwwww国产| 久久一区二区三区四区五区 | 主播大秀视频在线观看一区二区| 日韩欧美国产网站| 国产欧美高清在线| 日韩三区在线| 欧美人与禽zozo性伦| 亚洲精品在线视频播放| 欧美.com| 亚洲国产精久久久久久久| 私密视频在线观看| 天天躁日日躁狠狠躁欧美| 国产亚洲精品综合一区91| www亚洲色图| 99久久九九| 欧美黑人性猛交| 国产精品二区一区二区aⅴ| 亚洲一区观看| 国产区亚洲区欧美区| 91在线视频国产| 国产suv精品一区二区三区| 国产一区二区无遮挡| 天天操天天干天天干| 91在线精品一区二区三区| 快播亚洲色图| 精品视频在线一区二区| 亚洲尤物视频在线| 国产亚洲精品网站| 羞羞视频在线观看一区二区| 精品久久久久久无| 美女100%无挡| 一区二区三区午夜视频| 97碰碰碰免费色视频| 中文字幕精品无| 国产一区二区三区免费播放| 国产亚洲情侣一区二区无| 国产三级视频在线| 一区二区欧美精品| 男人搞女人网站| 91成人小视频| 欧美精品一区二区三区高清aⅴ| 在线免费观看黄色小视频| 欧美独立站高清久久| 久久久伊人日本| 亚洲天堂久久久久| av电影天堂一区二区在线| 亚洲一区二区自拍偷拍| 久草免费在线视频| 91精品福利视频| 超碰人人cao| 精品产国自在拍| 国产69精品久久久久99| 怡红院男人天堂| 91亚洲永久精品| 男女啪啪免费观看| 成人一级视频| 亚洲精品视频网上网址在线观看| 午夜剧场免费在线观看| 一级成人国产| 国产精品区一区二区三在线播放| 欧美人xxx| 日韩欧美在线视频免费观看| 日本女人性视频| 久久免费精品视频在这里| 日韩免费精品视频| 天天综合网天天综合| 亚洲免费观看高清在线观看| 日韩欧美黄色大片| 日韩三级毛片| 欧美精品久久久久久久久久| 国产乱码精品一区二三区蜜臂| 国产日韩精品一区| www.亚洲天堂网| 91精品尤物| 久久久国产视频| av毛片在线免费观看| 国产亚洲自拍一区| 成人久久久久久久久| 美女午夜精品| 欧美精品福利在线| 日本黄色三级视频| 亚洲网友自拍偷拍| 精人妻一区二区三区| 欧美成人高清| 96久久精品| 亚洲第一图区| 日韩欧美一级在线播放| 黑鬼狂亚洲人videos| 麻豆高清免费国产一区| 青青成人在线| 国产成人精品123区免费视频| 日韩精品视频在线| 日韩免费黄色片| 99在线视频精品| www国产精品内射老熟女| 日韩在线观看一区二区三区| 日韩中文理论片| 国产美女无遮挡永久免费| 亚洲欧美另类久久久精品| 韩国三级与黑人| 狠狠入ady亚洲精品经典电影| 国产v亚洲v天堂无码| 高清电影在线观看免费| 亚洲国产三级网| 日本三级小视频| 国产视频一区二区在线观看| 小泽玛利亚视频在线观看| 手机在线电影一区| 不卡一区二区三区视频| 2018av在线| 日韩av中文字幕在线免费观看| 国产超碰人人爽人人做人人爱| 久久天堂av综合合色蜜桃网| 国产成人无码av在线播放dvd| 欧美三级美国一级| 成人信息集中地欧美| 欧美理论电影| 日韩电影网在线| 国产偷人爽久久久久久老妇app| 中文字幕一区二区三区色视频| 欧美专区第二页| a91a精品视频在线观看| 日本一区二区三区视频在线观看| 亚洲福利影视| 97国产精品人人爽人人做| 性xxxx视频播放免费| 欧美亚一区二区| 免费在线一级片| 久久久久久9999| 黄色aaaaaa| 99国产精品久久久久久久成人热| 日韩中文字幕av在线| 免费一级欧美片在线观看网站| 2019中文字幕在线免费观看| 在线观看精品一区二区三区| 日韩精品在线一区二区| 精产国品一区二区| 亚洲色图欧美偷拍| 精品少妇人妻一区二区黑料社区 | 99视频在线观看视频| 亚洲综合社区| 国产资源第一页| 国产亚洲精品美女久久久久久久久久| 亚洲iv一区二区三区| 极品美女一区| 欧美日韩成人在线视频| 成年人视频网站在线| 亚洲电影免费观看高清完整版在线观看| 无码人妻一区二区三区免费| 亚洲亚洲精品在线观看| 免费成人深夜蜜桃视频 | 黄色正能量网站| 国产在线视频不卡二| 亚洲精品无码久久久久久| 午夜精品久久久久99热蜜桃导演 | 中文字幕日本不卡| 最新中文字幕视频| 成人黄色大片在线观看| 97超碰人人看| 久久国产精品99精品国产| 久久国产精品网| 欧美久久综合| 黑人巨大国产9丨视频| 欧美日韩在线观看视频小说| 久久久久久艹| 久久人人爽人人爽人人片av不| 91免费看国产| 精品久久久网| 国产精品免费一区二区三区都可以| 欧美高清另类hdvideosexjaⅴ | 瑟瑟视频在线观看| 99re亚洲国产精品| 亚洲av成人片无码| 国产在线精品一区二区| 91亚洲精品久久久蜜桃借种| 久久精品国产色蜜蜜麻豆| 亚洲精品视频导航| 日韩高清一区在线| 国产黄色特级片| 香蕉久久夜色精品国产| 国产九九九九九| 亚洲精品视频啊美女在线直播| 日韩精品综合在线| 韩日欧美一区| 精品人妻大屁股白浆无码| 精品二区久久| 精品视频免费在线播放| 亚洲伦伦在线| 国产亚洲欧美在线视频| 亚洲一区二区免费看| 欧美牲交a欧美牲交aⅴ免费下载| 久久精品免费| 午夜精品在线免费观看| 蜜桃传媒麻豆第一区在线观看| 色婷婷成人在线| 日韩国产精品大片| 女教师高潮黄又色视频| 成人一区二区三区视频在线观看 | 麻豆传媒网站在线观看| 欧美日韩国产高清| 僵尸世界大战2 在线播放| 99精品视频网| 男人透女人免费视频| 免费在线观看日韩欧美| 久久久久xxxx| 国产成人免费视频| 男男一级淫片免费播放| 久久久久九九视频| 欧美特黄一级片| 亚洲一区二区三区小说| 日韩精品1区2区| 在线精品视频一区二区三四| 中文字幕有码视频| 日韩女优av电影在线观看| 免费a级片在线观看| 亚洲人成网站色ww在线| 午夜激情视频在线| 久久久av亚洲男天堂| 久草在线视频福利| 亚洲97在线观看| 欧美激情福利| 国产精品自拍首页| 日韩国产一区二区三区| 中文字幕日韩精品无码内射| 久久高清国产| www.污网站| 久久久久久99精品| 黄色一级片中国| 色婷婷久久久亚洲一区二区三区| 国产精品欧美久久久久天天影视| 亚洲爱爱爱爱爱| 97超碰人人在线| 97成人超碰免| japansex久久高清精品| 精品一区2区三区| 忘忧草精品久久久久久久高清| 人妻无码一区二区三区四区| 热久久一区二区| 亚洲天堂美女视频| 亚洲欧洲另类国产综合| xxxx.国产| 日韩欧美电影一二三| 国产免费视频在线| 久久久日本电影| 亚洲久草在线| 精品无人乱码一区二区三区的优势 | 青青草免费在线| 久久777国产线看观看精品| 日本成人片在线| 亚洲伊人久久综合| 日韩一区二区中文| 成年人免费在线播放| 国产999精品久久久久久绿帽| 极品人妻videosss人妻| 婷婷开心久久网| www香蕉视频| 久久亚洲欧美日韩精品专区| 日韩另类视频| 久久综合中文色婷婷| 亚洲制服av| 中文在线永久免费观看| 一区二区不卡在线视频 午夜欧美不卡在| 国产成人自拍偷拍| 日韩精品欧美激情| 91黄页在线观看| αv一区二区三区| 欧美另类女人| 久久久久无码精品| 亚洲人妖av一区二区| 中国老头性行为xxxx| 亚洲四色影视在线观看| 欧美gv在线观看| 激情伦成人综合小说| 亚洲精品韩国| 好吊色视频一区二区三区| 亚洲国产人成综合网站| 手机在线不卡av| 韩国日本不卡在线| 狠狠久久伊人| 国产精品12345| av在线播放成人| 久久艹免费视频| 精品性高朝久久久久久久| 理论片午夜视频在线观看| 懂色中文一区二区三区在线视频| 亚洲一级影院| 日韩免费高清一区二区| 高潮白浆女日韩av免费看| 午夜小视频免费| 欧美中文字幕视频在线观看| 妖精一区二区三区精品视频| 各处沟厕大尺度偷拍女厕嘘嘘| 99国产精品久久久久| 免费看日韩毛片| 亚洲乱码一区二区| 深夜成人影院| 水蜜桃亚洲精品| 麻豆精品在线视频| 国产又粗又硬又长又爽| 欧美一区二区大片| 91视频欧美| 国产乱子伦精品| 日本特黄久久久高潮| 日本激情视频一区二区三区| 宅男噜噜噜66一区二区66| 日本小视频在线免费观看| 精品国产乱码久久久久| 久久亚洲不卡| 麻豆一区在线观看| 3d成人动漫网站| 色老头在线一区二区三区| 视频在线精品一区| 国产成人精品一区二区三区网站观看| 国产网址在线观看| 亚洲亚裔videos黑人hd| 9999精品视频| 国产妇女馒头高清泬20p多| 99久久久无码国产精品| 国产九色91回来了| 欧美黑人一级爽快片淫片高清| 欧洲亚洲一区二区三区| 亚欧在线免费观看| 亚洲国产精品一区二区尤物区|