精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

狠狠躁天天躁日日躁欧美| a在线播放不卡| 欧美乱大交xxxxx另类电影| 最新中文字幕日本| 欧美日韩精品免费观看视完整| 国产欧美日韩精品一区| av免费观看久久| 久久久久久久久久成人| 亚洲精品久久久| 日韩精品在线观看视频| 涩多多在线观看| 一区二区精品伦理...| 亚洲欧洲日韩av| 欧美人与性禽动交精品| 国产草草影院ccyycom| 亚洲欧美成人综合| 精品国产欧美一区二区五十路 | 久久观看最新视频| 久久国产精品高清一区二区三区| 国产美女在线观看一区| 日本精品久久中文字幕佐佐木| 三级av在线免费观看| 视频一区中文| 亚洲精品成人免费| 中文字幕av一区二区三区人妻少妇 | 国产欧美日韩在线| 精品蜜桃一区二区三区| www.av导航| 精品午夜一区二区三区在线观看| 51午夜精品视频| 久久免费公开视频| 一区二区三区中文| 色哟哟亚洲精品一区二区| 99久久久久久久久久| 成人偷拍自拍| 日韩视频一区二区三区| 亚洲精品综合在线观看| 日韩中文在线播放| 日韩欧美亚洲国产一区| 五十路熟女丰满大屁股| 日本伦理一区二区| 一区二区三区在线观看视频| 国产精品美女在线播放| 欧美激情午夜| 国产精品国产自产拍高清av| 日韩免费电影一区二区三区| 国产在线观看免费| 国产亚洲女人久久久久毛片| 免费成人在线观看av| 涩爱av在线播放一区二区| 成人av资源在线观看| 懂色一区二区三区av片| 黑人精品一区二区三区| 岛国一区二区在线观看| 国产精品二区在线观看| 亚洲乱熟女一区二区| 高清在线成人网| 国产精品一区视频网站| 日本韩国免费观看| 91亚洲大成网污www| 久久riav二区三区| 欧美男男同志| 国产精品麻豆久久久| 一区二区三区在线视频111| 午夜毛片在线| 亚洲欧美激情一区二区| 男人j进女人j| av影片在线| 色综合中文字幕| 三级a在线观看| vam成人资源在线观看| 91精品国产综合久久久久久漫画 | 91视频观看视频| 日本公妇乱淫免费视频一区三区| 1pondo在线播放免费| 亚洲欧洲综合另类| 国产欧美日韩网站| 欧美成人h版| 欧美日韩国产成人在线免费| 国产资源中文字幕| 欧美精品中文字幕亚洲专区| 正在播放亚洲1区| 久久国产精品波多野结衣av| 亚洲综合不卡| 成人网在线免费观看| 性网爆门事件集合av| 久久综合999| 亚洲一区二区三区乱码| 免费毛片在线看片免费丝瓜视频| 欧美日韩精品在线播放| 亚洲精品永久视频| 欧美jizz19性欧美| 最近的2019中文字幕免费一页| 午夜国产福利一区二区| 销魂美女一区二区三区视频在线| 国产精品丝袜久久久久久高清| 国产国语亲子伦亲子| 久久色视频免费观看| 五月天色婷婷综合| 亚洲欧美小说色综合小说一区| 在线不卡一区二区| jlzzjizz在线播放观看| 久久久久国产精品| 日韩av片免费在线观看| 亚洲精品久久久狠狠狠爱| 久久精品一区二区三区av| 日韩不卡视频一区二区| 日韩三区免费| 日韩av网站导航| 欧美人妻精品一区二区三区| 日韩福利电影在线观看| 国外成人免费视频| av电影免费在线观看| 欧美在线不卡一区| 亚洲av无码成人精品国产| 欧美日韩一视频区二区| 国产免费成人av| 黄色小视频在线免费观看| 亚洲图片欧美综合| 日韩av片免费观看| av中文一区| 欧美综合一区第一页| 亚洲乱色熟女一区二区三区| 中文字幕中文字幕在线一区 | 免费观看亚洲| 亚洲福利视频久久| 久热这里有精品| 久久精品国产亚洲一区二区三区| 久久精品欧美| www视频在线观看| 日韩女优毛片在线| www.色小姐com| 国产一区二区在线观看免费| 一区二区三区四区不卡| 国产激情欧美| 在线观看不卡av| 在线观看亚洲黄色| 国产亚洲欧美中文| 六月丁香婷婷激情| 台湾色综合娱乐中文网| 久久久久免费视频| 国产三级第一页| 中文字幕佐山爱一区二区免费| 欧美在线aaa| 欧美成人精品一区二区三区在线看| 国产91精品最新在线播放| 外国精品视频在线观看| 日韩电影在线视频| 国产成人小视频在线观看| 香蕉视频成人在线| 欧美日韩国产影院| 男生裸体视频网站| 水野朝阳av一区二区三区| 欧美午夜精品久久久久久蜜| 国产综合色区在线观看| 亚洲最新av在线| 中文字幕 自拍偷拍| 国产精品久久久久久久裸模| 色啦啦av综合| 亚洲国产不卡| 国产精品18毛片一区二区| 91九色国产在线播放| 日韩精品黄色网| 波多野结衣激情视频| 国产精品视频在线看| 国内自拍第二页| 综合天天久久| 精品日本一区二区三区| 国产成人精品亚洲日本在线观看| 怡红院精品视频| 国产丰满美女做爰| 午夜精品久久久久久久99樱桃 | 视频小说一区二区| 国产成人精品电影久久久| 午夜国产福利在线| 欧美成人video| 欧美在线观看不卡| 中文字幕在线一区| 国产一级免费片| 日韩中文欧美在线| 天天想你在线观看完整版电影免费| 成人偷拍自拍| 国产精品女视频| 欧美男男video| 亚洲人精品午夜在线观看| 91午夜交换视频| 欧美日韩国产中文字幕| 日本精品在线免费观看| av亚洲精华国产精华精| 我要看一级黄色大片| 欧美日一区二区在线观看| 久久久免费看| 国产一区二区三区免费观看在线| 97香蕉超级碰碰久久免费的优势| melody高清在线观看| 欧美tk—视频vk| 中文字幕在线观看高清| 精品国产成人av| 国产成人无码aa精品一区| 26uuu亚洲综合色| 日日夜夜精品视频免费观看| 老司机午夜精品视频| 欧美这里只有精品| 少妇精品久久久一区二区三区| 91av免费看| 九九热这里有精品| 91av视频在线免费观看| 4438x成人网全国最大| 国产亚洲欧美视频| 午夜福利一区二区三区| 日韩一级完整毛片| 亚洲图片在线播放| 一本大道av伊人久久综合| 国产第一页在线播放| ...xxx性欧美| 黄色av免费播放| 久久亚洲精华国产精华液| 91精品又粗又猛又爽| 国产美女在线精品| 日韩在线不卡一区| 久久精品国产精品亚洲红杏| 久久国产色av免费观看| 日韩午夜一区| 日本丰满少妇xxxx| 国产综合精品| 日本a在线天堂| 中文字幕日韩欧美精品高清在线| 亚洲一区影院| 日韩在线二区| 亚洲日本japanese丝袜| 精品理论电影| 日韩av电影免费观看| 亚洲影院天堂中文av色| 久久精彩视频| 一道在线中文一区二区三区| 精品一区在线播放| 日韩极品在线| 欧美日韩高清在线一区| 免费观看久久av| 欧美午夜精品久久久久免费视| 欧美人与物videos另类xxxxx| 另类小说综合网| 亚州国产精品| 日韩国产美国| 99久久www免费| 四虎免费在线观看视频| 午夜精品亚洲| 成人免费观看在线| 在线视频观看日韩| 欧美 日韩 亚洲 一区| 国产日韩视频| 国产一级片黄色| 日韩电影在线观看一区| 亚洲成人天堂网| 激情综合五月天| 波多野结衣电影免费观看| 懂色av中文一区二区三区| 少妇一级淫免费观看| 91尤物视频在线观看| 久久久久无码精品国产sm果冻| 国产人妖乱国产精品人妖| а天堂中文在线资源| 亚洲精品免费播放| 日本一本高清视频| 91久久国产最好的精华液| 中文字幕有码无码人妻av蜜桃| 欧美一区二区三区日韩视频| 欧美熟妇另类久久久久久不卡 | 日本在线视频站| 久久影院模特热| 1区2区3区在线| 国产成人精品在线观看| 国产日韩欧美中文在线| 国产精品一码二码三码在线| 香蕉视频一区二区三区| 中文字幕一区二区三区精彩视频 | 欧美日韩国产成人| 亚洲一区资源| 91在线视频一区| 男人的天堂久久| 亚洲一区二区高清视频| 激情偷拍久久| 欧美大尺度做爰床戏| 大尺度一区二区| xxxx日本黄色| 亚洲一区二区欧美日韩| 久久久久亚洲视频| 精品乱人伦小说| av在线收看| 久久免费国产视频| 欧洲亚洲精品| 精品乱色一区二区中文字幕| 婷婷综合在线| 久久精品香蕉视频| 成人国产精品免费| 日本爱爱小视频| 色综合天天综合狠狠| a天堂在线观看视频| 亚洲性无码av在线| 91破解版在线观看| 亚洲aaaaaa| 欧美日韩一二三四| 免费无码不卡视频在线观看| 狠狠狠色丁香婷婷综合激情| 国产精品久久久久无码av色戒| 亚洲欧美乱综合| 日韩久久久久久久久久| 精品国产乱码久久久久久蜜臀 | 亚洲色图久久久| 91在线国内视频| 久久激情免费视频| 91精品国产色综合久久ai换脸 | 欧美偷窥清纯综合图区| 日本道在线视频| 免费不卡在线观看| 性欧美13一14内谢| 亚洲第一在线综合网站| 99国产精品一区二区三区| 国产亚洲欧美日韩一区二区| 最新欧美色图| 九色视频成人porny| 激情久久中文字幕| 亚洲天堂小视频| 亚洲视频 欧洲视频| 在线视频 91| 国产一区二区日韩| 黑人巨大精品欧美一区二区桃花岛| www国产亚洲精品| 欧美黄色大片网站| 亚洲第一色av| 亚洲欧洲日本在线| 国产一区二区在线不卡| www.日韩av.com| 久久电影天堂| 亚洲一卡二卡三卡| 韩国毛片一区二区三区| 国产精品国产三级国产传播| 欧美色国产精品| 香蕉视频网站在线观看| 国产女人18毛片水18精品| 欧美日韩在线播放视频| 欧美成人黄色网址| 国产精品你懂的在线欣赏| 中文无码av一区二区三区| 一区二区三区 在线观看视| se69色成人网wwwsex| 亚洲欧美日韩综合一区| 久久精品av麻豆的观看方式| 日韩福利小视频| 日韩欧美成人一区| 岛国毛片av在线| 久久riav| 蜜桃精品视频在线| 男人操女人的视频网站| 欧美成人a∨高清免费观看| 黄网av在线| 精品一区久久久| 日本视频一区二区三区| 亚洲精品天堂网| 欧美一区二区三区免费| 草美女在线观看| 欧美一卡2卡3卡4卡无卡免费观看水多多| 久久久久免费| 秋霞欧美一区二区三区视频免费| 欧美一区二区三区公司| 超级白嫩亚洲国产第一| 欧美精品在线一区| 精品亚洲免费视频| 国产一卡二卡在线播放| 亚洲欧洲成视频免费观看| 国产福利一区二区三区在线播放| 91九色国产ts另类人妖| www.亚洲精品| 中文字幕 国产| 久久久久久久999| 久久综合色占| 伊人成人免费视频| 精品国产鲁一鲁一区二区张丽| av电影在线网| 国产精品午夜av在线| 青青草成人在线观看| 麻豆国产尤物av尤物在线观看 | 欧美日韩在线一区二区| 26uuu亚洲电影在线观看| 玖玖玖精品中文字幕| 精品在线观看免费| 日韩福利片在线观看| 神马久久久久久| 欧洲亚洲成人| 91视频这里只有精品| 欧美色道久久88综合亚洲精品| 午夜老司机在线观看| 久久久久久九九九九| 国模少妇一区二区三区| 美日韩一二三区| 欧美精品在线第一页| 成人一区而且| 精品无码国产一区二区三区51安| 91精品国产综合久久精品图片 | 麻豆精品免费视频|