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

通俗的解釋下Vite能用來干嘛?是怎么回事?

系統 瀏覽器
很多人會從 ES Modules 、Dev Server 、Vue 集成度高、速度快啊各種方向來講解它,更像是在說它的優點,我覺得有點神話它了,所以才讓它變得那么神秘(迷惑)?

[[416494]]

本文轉載自微信公眾號「秋風的筆記」,作者藍色的秋風。轉載本文請聯系秋風的筆記公眾號。

最近在B乎看到了這么一個問題,能不能通俗地講 Vite 到底是用來干嘛的,一開始覺得這個問題沒什么意思,因為 Vite 這個話題有太多的人講了。

但是我看了看其他的回答,大部分都會從 Vite 的特性,ES Modules 去講整件事情,然后還是會時不時要和 webpack 去做比較。

而且我又仔細看了看題主的疑問。

我也陷入了深深的思考,到底是大家學習一些新知識的時候急迫了呢?還是說前端常常容易把一些簡單的東西復雜化,容易形成套娃式的知識?又或者是知識太零散了,分不清到底是哪些是有關系的?

探索Vite

我打開了 Vite 的官網,他的標語是 「 下一代前端開發與構建工具」,因為一般標語需要言簡意賅地表達出它的意思,所以會用最精簡的去概括(也是為了宣傳)。我認為確實也沒有啥毛病,但是對于一些新手而且,確實這句話不知所云,官網也沒有足夠清楚的圖,如果是一些不了解的人,確實也容易迷失。

那么這句話到底要表達出什么意思呢?我用通俗的話表述了一遍(可能不一定準確,僅代表個人的理解):

目前大部分瀏覽器已經支持了ESM(ES Modules)模塊的方式了,因此我寫了一個轉化工具,可以讓一些瀏覽器不支持的格式(.vue/.svelte/.ts)以及不支持的語法(最新的es語法/特性)讓瀏覽器支持,它將會成為趨勢。

很多人會從 ES Modules 、Dev Server 、Vue 集成度高、速度快啊各種方向來講解它,更像是在說它的優點,我覺得有點神話它了,所以才讓它變得那么神秘(迷惑)?

而在我看來 Vite 就是一個轉化器,而 Webpack 就是 模塊器 + 轉化器。

轉化器的用途就是,將一些瀏覽器無法解析的文件,轉化成可以被瀏覽器解析的 js 文件,Vite 做的核心就是這個。什么用 Vite 快啊,都是瀏覽器自己的功勞,瀏覽器統一了模塊化方案,Vite 只是吃了一波瀏覽器的性能紅利而已。

用一張圖來描述就是(這里我盜用了 Webpack 的官方圖,改了改)

Vite 就是把所有的資源都轉化成了 js 的形式去引入,因為瀏覽器只支持 js 文件的 ES Modles 方式,畢竟 ES Modules 屬于 ECMAscript 規范,當然只能是適用于 js 了。而整個模塊化過程都是瀏覽器的功勞。

這里再來看看 Webpack 的整體流程圖,如果你對 Webpack 了解,可能能加深印象,但是不了解 webpack 也沒關系。

由于 Webpack 要自己的模塊化方式,因此需要將所有的資源都打包成一個 js,這個圖很形象地解釋了 Webpack 的作用。(對于不了解 Webpack 的也沒有關系,知道 Vite 的圖就夠了。)

我舉一個例子,可能能讓你更加清楚地去理解 Vite 的真面目。

  1. // index.html 
  2. <script type="module" src="main.js"></script> 
  1. // main.js 
  2. import { element, text } from './el.js'
  3.  
  4. const container = element('div'); 
  5.  
  6. const h1 = element('h1'); 
  7.  
  8. const t = text('Hello ES Modules'); 
  9.  
  10. h1.appendChild(t); 
  11.  
  12. container.appendChild(h1); 
  13.  
  14. document.body.appendChild(container); 
  1. // el.js 
  2. export function element(name) { 
  3.  return document.createElement(name); 
  4.  
  5. export function text(data) { 
  6.  return document.createTextNode(data); 

在 VS Code 裝一個 Live Server , 然后啟動這個 html, 然后我們隨便改點東西,可以看到,更新速度的非???。

也許你會說,我文件數量太少了,沒事,我們這次來整活20個文件。

  1. const fs = require('fs'); 
  2.  
  3. const LENGTH = 20; 
  4.  
  5. new Array(LENGTH).fill(0).forEach((item, index) => { 
  6.     fs.writeFileSync(`child-${index}.js`, ` 
  7.     export { child } from './child-${index+1}.js'
  8.     `) 
  9. }) 
  10.  
  11. fs.writeFileSync(`child-${LENGTH}.js`, ` 
  12. import { element, text } from '../el.js'
  13.  
  14. export function child() { 
  15.     const c = element('div'); 
  16.     const t = text('child'); 
  17.     c.appendChild(t); 
  18.     document.body.appendChild(c); 
  19. `) 

所以我說,Vite 本質是撥除了 webpack 模塊化功能后的一個轉化器。

但是盡管瀏覽器解決了模塊化的依賴,依舊是有兩個問題:

但是沒辦法支持一些樣式/文件(css/ttf/jpg...)資源的 import 語法

無法支持.ts/.vue/.svelte 等模板語法(或者高級特性)的直接引用

所以,才會有我們看到 Vite 仿佛又做了很多事情,因為 Vite 能夠去加載 .ts/.vue/.svelte 等文件, 它整合了很多插件去做這些轉化工作,將所有的資源都轉化成瀏覽器可識別的 js 的方式去導入,將 css 文件經過包裝,轉化為一個 js 文件等等。

剩余的就是原文件中的內容替換,因為類似于像第三方包中的資源沒辦法直接引入,需要做一層替換,例如一下代碼就被轉化成了這樣。

在編譯的時候需要去替換我們實際寫代碼的地址,去讓瀏覽器加載,然后為了不讓瀏覽器加載文件太多,還要將第三方包導成一個模塊,然后還有熱更新功能(這部分功能稍微復雜一些)。并且為了能夠在生產環境打包(Tree shaking / 壓縮啊,等等之前常規的優化),使用了 Rollup ,不僅提供了 ESM 的打包方式,以及你需要的其他模塊化方式(umd/amd/cmd/iife)。

因此核心是簡單的,但是相關的生態想要好用,卻是要花大量的精力,Vite 團隊也是花了大力氣去解決了周邊的生態問題,各種插件的適配啊等等。

首創的ESM

而首次提出利用瀏覽器原生ESM能力的工具并非是Vite,而是一個叫做Snowpack的工具(可以看我這篇文章 《模塊化系列》snowpack,提高10倍打包速度。)。前身是@pika/web,從1.x版本開始更名為Snowpack。

Snowpack在其官網是這樣進行自我介紹的:“Snowpack是一種閃電般快速的前端構建工具,專為現代Web設計。它是開發工作流程較重,較復雜的打包工具(如Webpack或Parcel)的替代方案。Snowpack利用JavaScript的模塊化方式(稱為ESM)來避免不必要的工作并保持流暢的開發體驗”。

為此,Pika團隊開發并維護了兩個技術體系:構建相關的Snowpack和造福大眾的Skypack。其中 skypack 上還有很多特殊處理過的 ES Modules 形式的包(例如 React 等)直接用來調用,由于那些包原先是不支持 ES Modules 形式,他們單獨維護了 ES Modules 版本。

看完了 ES Modules 的現狀以及 Vite 的本質,我們就再來把模塊化來回顧一下,這樣整個時間線就完整了以及我們的開發方式變化到現在,Web 真的做出了巨大的努力。

模塊化簡史

把時間回退到2006年,這個時候 「jQuery」 剛呱呱落地,那個時候雖然沒有模塊化,使用 jQuery 相比傳統那樣寫已經提高極大的速度,當然雖然已經很方便了,單還是阻擋不了愛研究的程序員們。

在2009年的時候 「CommonJS」 誕生了,但是 「CommonJS」 由于有兩個重要問題沒能得到解決,所以遲遲不能推廣到瀏覽器上。(1.由于外層沒有 function 包裹,被導出的變量會暴露在全局中。2.在服務端 require 一個模塊,只會有磁盤 I/O,所以同步加載機制沒什么問題;但如果是瀏覽器加載,一是會產生開銷更大的網絡 I/O,二是天然異步,就會產生時序上的錯誤。)中間百家爭鳴(「AMD、CMD、UMD」)一直到2016年5月,經過了兩年的討論,ECMAScript 6.0 終于正式通過決議,成為了國際標準。在這一標準中,首次引入了 import 和 export 兩個 JavaScript 關鍵字,并提供了被稱為 「ES Module」 的模塊化方案。在 JavaScript 出生的第 21 個年頭里,JavaScript 終于迎來了屬于自己的模塊化方案。而在這期間想要使用模塊化,只能通過打包工具來解決。

有了標準之后,也不是能立馬讓所有設備都支持 「ES Module」 因為瀏覽器的推進是一個漫長的過程,不像服務端,如果做一個升級,只需要對服務端升級,而瀏覽器的升級伴隨著電腦/手機等一系列的因素,因素非常不可控,因為用戶總是可以有多種多樣的選擇,「ES Modules(ESM)」 是 JavaScript 官方的標準化模塊系統,而它這一走,卻在標準化的道路上已經花費了近 10 年的時間。在2018 年 5 月 Firefox 60 發布之后,所有的主流瀏覽器就都支持 「ESM」 了。直到現在,「ES Module」 還并不能真正地用在生產環境使用,還是需要轉化成以舊的方式(非ESM方式)。

寫在最后

當回答完這個問題的時候,不禁會想,前端的發展過程中卻是會有一些新瓶裝舊酒的東西,然后神話它,然后讓小白覺得它很高大上,讓人懼怕,然后大佬就會覺得這個東西很簡單,也不愿意去拆解它,是否我們需要轉化一些思考,當我們講一個東西的時候,剝離那些高大上的詞匯,做一些更加親民的解釋?當然我不否則這些新的工具帶來的便利以及背后的付出,但是親民是否也是一種方式,或許會變得更加美好?答案我也不得而知,本文只是作出了自己的一個思考,如有錯誤請大家批評指出。

參考

 

https://segmentfault.com/a/1190000039370642

 

責任編輯:武曉燕 來源: 秋風的筆記
相關推薦

2023-03-29 08:24:30

2021-06-04 11:10:04

JavaScript開發代碼

2020-02-18 11:19:36

物聯網病毒物聯網IOT

2021-04-10 10:20:42

黑客攻擊網絡安全

2024-01-08 08:35:28

閉包陷阱ReactHooks

2016-11-22 19:54:56

點擊率預估推薦算法廣告

2023-10-12 08:54:20

Spring事務設置

2013-04-18 09:56:05

2023-03-05 15:41:58

MySQL日志暴漲

2021-05-11 11:51:15

飛機Wi-Fi通信

2022-04-15 08:54:39

PythonAsync代碼

2021-07-31 19:21:34

Python下劃線數值

2018-05-08 08:46:47

Linux內存釋放

2021-07-30 07:28:16

偽類偽元素CSS

2017-11-24 11:10:38

區塊鏈礦工分叉

2025-06-11 04:00:00

增量計算Lamda架構

2021-10-15 21:16:00

手機內存漏洞

2022-12-13 08:36:42

D-SMARTOracle數據庫

2015-03-25 14:44:05

DNS蘋果

2024-04-30 11:21:04

瀏覽器指紋瀏覽器
點贊
收藏

51CTO技術棧公眾號

亚洲国产综合91精品麻豆 | 日韩中文一区二区三区| 日韩福利片在线观看| 伊人久久大香线蕉综合网站 | 中文字幕有码视频| 在线国产一区| 日韩电影免费观看在线观看| 国产精品爱久久久久久久| 国产精品久久久久无码av色戒| 向日葵视频成人app网址| 亚洲色图丝袜美腿| 国产精品扒开腿做爽爽爽的视频| 又色又爽的视频| av成人资源网| 日韩欧美中文免费| 男女裸体影院高潮| 春暖花开成人亚洲区| 国产在线乱码一区二区三区| 欧美在线一区二区视频| 日本一级二级视频| 欧美日一区二区| 亚洲国产精品久久久| 超薄肉色丝袜足j调教99| 香蕉视频成人在线| 国产综合久久久久久久久久久久| 午夜精品美女自拍福到在线| 国产黄色录像片| 丝袜美腿一区二区三区动态图| 91麻豆精品国产91久久久久久| 久久99久久99精品| 麻豆网在线观看| 久久久久久久久久久久久久久99| 国产日韩欧美91| 黄色片中文字幕| 亚洲手机在线| 最近中文字幕mv在线一区二区三区四区| 99re这里只有| 一区中文字幕电影| 91麻豆精品国产91久久久使用方法| 50路60路老熟妇啪啪| 999av小视频在线| 丰满岳乱妇一区二区三区| 国产精品最新在线观看| 无码人妻一区二区三区线| 亚洲精品麻豆| 欧美精品在线网站| 在线免费看av网站| 欧美日韩中文字幕一区二区三区| 亚洲精品永久免费精品| aa一级黄色片| 三级精品视频| 亚洲精品久久久久久久久久久久| 人妻 丝袜美腿 中文字幕| 精品久久免费| 日韩一区二区电影| 青青草原播放器| 国产一区二区在线观| 亚洲午夜成aⅴ人片| aaa免费在线观看| 黄色国产网站在线播放| 亚洲视频一区在线| 影音先锋成人资源网站| 二区三区在线观看| 亚洲精品va在线观看| 免费看黄色a级片| 色爱综合区网| 国产亚洲精品免费| 精品久久久三级| 欧美日本网站| 国产亚洲一区二区在线观看| 日韩一区二区三区资源| 1pondo在线播放免费| 国产精品免费丝袜| 色婷婷777777仙踪林| 新版中文在线官网| 舔着乳尖日韩一区| 欧美xxxxx在线视频| 四虎成人在线| 91精品国产综合久久久久久 | 不卡的免费av| 国产欧美亚洲一区| 国产精品久久一| 国产乱淫av免费| 成人一级片网址| 免费h精品视频在线播放| 国产精品一区二区婷婷| 国产成人免费视频一区| 国产精品久久久久免费a∨| 亚洲视频在线免费播放| 亚洲在线观看| 国产精品免费久久久久影院| 99热这里只有精品在线| 成人精品视频.| 日本不卡久久| www在线观看播放免费视频日本| 亚洲午夜激情av| 久久久久久久片| 精品丝袜在线| 欧美私人免费视频| 少妇高清精品毛片在线视频| jizz免费一区二区三区| 日韩视频永久免费| 三上悠亚影音先锋| 欧美精品激情| 久久精品男人天堂| 日韩欧美一区二区一幕| 美国三级日本三级久久99| 国产a一区二区| www.在线视频.com| 五月天视频一区| 中文字幕22页| 九九视频精品全部免费播放| 日韩欧美资源站| 精品少妇一区二区三区免费观| 天天综合网网欲色| 欧美一级免费视频| 亚洲成人77777| 国产精品欧美极品| 777米奇影视第四色| 免费一级欧美在线大片 | 日本在线免费中文字幕| 偷拍日韩校园综合在线| 在线视频一二区| 老司机精品视频网| 日韩大陆毛片av| 欧美日韩成人免费观看| 中文字幕一区二区av| 国产成人精品免高潮费视频| 人妻一区二区三区免费| 亚洲免费观看高清完整版在线观看| 色婷婷综合久久久久中文字幕| aiss精品大尺度系列| 欧美超级免费视 在线| 亚洲午夜无码久久久久| 91亚洲国产成人精品一区二区三| 日本一道在线观看| 自拍偷拍亚洲| 日韩一区二区三区xxxx| 最近中文字幕在线观看| 久久精品夜色噜噜亚洲a∨| 91成人在线观看喷潮教学| 亚洲精华液一区二区三区| 日韩欧美亚洲国产精品字幕久久久| 性少妇xx生活| 欧美aa在线视频| 日韩精品无码一区二区三区| 在线看片国产福利你懂的| 亚洲第一页中文字幕| 久久久久噜噜噜亚洲熟女综合| 激情成人综合网| 熟妇熟女乱妇乱女网站| 在线播放成人| 久久国产精彩视频| 99久久99久久久精品棕色圆| 成人激情午夜影院| 免费人成自慰网站| 菁菁伊人国产精品| 555www成人网| 男人天堂网在线观看| 一本一本大道香蕉久在线精品 | 久久夜色精品国产欧美乱极品| 97视频久久久| 色婷婷狠狠五月综合天色拍 | 久久久久无码国产精品不卡| 粉嫩久久99精品久久久久久夜| www.欧美黄色| 久久99精品国产自在现线| 午夜精品久久久久久久男人的天堂 | 中文av一区| 成人资源av| 蜜桃视频m3u8在线观看| 亚洲欧美一区二区精品久久久| 国产字幕在线观看| 中文字幕在线视频一区| 亚洲熟女乱综合一区二区| 99精品视频网| 亚洲第一导航| 538任你躁精品视频网免费| 国内免费久久久久久久久久久 | eeuss中文| 9l视频自拍九色9l视频成人| 热99在线视频| 免费观看成人高潮| 日韩亚洲国产中文字幕欧美| 亚洲国产成人精品激情在线| 国产女主播在线一区二区| 国产女同无遮挡互慰高潮91| 亚洲经典视频在线观看| 日韩国产一区久久| 久久九九精品视频| 欧美在线一区二区视频| 老司机午夜在线| 日韩电影大全免费观看2023年上| 中文字幕乱码人妻二区三区| 一区二区三区高清不卡| 久久久久久九九九九九| 国产资源在线一区| 少妇性饥渴无码a区免费| 天堂网在线观看国产精品| 精品国产一区二区三区免费| 久久人人视频| 国内外成人免费激情在线视频网站 | 日韩欧美国产二区| 亚洲图色一区二区三区| 国产精品成人一区| 女人黄色免费在线观看| 一区二区国产精品视频| 成人免费公开视频| 国产精品成人免费精品自在线观看| 一本之道在线视频| 久久一区二区三区超碰国产精品| 97超碰人人爱| 国产午夜一区| 国外成人在线视频网站| 在线不卡日本v二区707| 亚洲欧美999| 亚洲第一黄色片| 精品视频全国免费看| gv天堂gv无码男同在线观看| 日日噜噜夜夜狠狠视频欧美人 | 欧美精品黄色| 亚洲人一区二区| 综合色就爱涩涩涩综合婷婷| av日韩中文字幕| japansex久久高清精品| 国产精品91久久久久久| 天堂中文在线播放| 国内精品免费午夜毛片| 污污网站在线观看| 久久视频在线播放| 91ph在线| 一本大道亚洲视频| 嫩草在线播放| 亚洲男女性事视频| 亚洲欧洲综合在线| 亚洲国内精品在线| 欧美 日韩 人妻 高清 中文| 欧美一级久久久久久久大片| 国产精品国产三级国产aⅴ| 在线观看亚洲a| 久操视频在线免费观看| 日本韩国欧美在线| 成人av网站在线播放| 亚洲超丰满肉感bbw| 妺妺窝人体色www婷婷| 亚洲美腿欧美偷拍| 中文字幕人妻一区二| √…a在线天堂一区| 久久午夜精品视频| 中文无字幕一区二区三区| 国产三级在线观看完整版| 国产婷婷色一区二区三区四区| 成人免费网站黄| 国产日韩欧美不卡在线| 99在线视频免费| 国产精品久久久久久久久图文区| 可以免费看av的网址| 日韩码欧中文字| 亚洲色图综合区| 亚洲影视在线播放| 日产精品久久久久| 欧美日韩国产精品一区| 亚洲综合图片网| 欧美亚洲日本一区| 一区二区日韩视频| 日韩一区二区高清| 亚洲 国产 欧美 日韩| 日韩精品在线第一页| 国产三级在线免费观看| 中文字幕亚洲一区二区三区| 国产视频在线播放| 97人人模人人爽人人喊中文字 | 91欧美激情另类亚洲| 日韩精品一区二区三区中文字幕 | 成人黄色一区二区| 麻豆精品新av中文字幕| www.51色.com| hitomi一区二区三区精品| 日本免费观看网站| 九一九一国产精品| 动漫美女无遮挡免费| 久久久久9999亚洲精品| 中文字幕在线观看2018| 亚洲大片精品永久免费| 成人小视频在线播放| 51久久夜色精品国产麻豆| 免费看av毛片| 自拍偷拍亚洲在线| 日本高清成人vr专区| 清纯唯美日韩制服另类| 2020国产精品小视频| 国产欧美日韩综合一区在线观看 | 狠狠干成人综合网| 在线观看一区二区三区三州| 黄色av成人| 999精品视频在线| 国产成人精品综合在线观看 | 欧美另类第一页| 午夜影院免费体验区| 中文字幕亚洲欧美日韩高清| 日本伦理一区二区| 国产精品成人免费视频| 国产ts一区| 亚洲一区二区三区精品在线观看| 亚洲大黄网站| 中文字幕丰满乱码| 91一区二区在线| 久久av高潮av无码av喷吹| 在线观看日韩电影| 懂色av一区二区三区四区| 这里只有精品视频在线| 成人三级高清视频在线看| 成人av色在线观看| 九九视频精品全部免费播放| 国产精品入口芒果| 国产一区二区在线视频| 精品人妻一区二区三区蜜桃视频| 亚洲综合激情小说| 97精品人妻一区二区三区在线| 亚洲欧美日韩国产成人| 久久电影网站| 91久久久久久久| 欧美三级三级| 国产超级av在线| 粉嫩av一区二区三区| 性生交大片免费全黄| 欧美性猛交xxxx乱大交退制版| 天天干视频在线观看| 欧美黄色片视频| 国产精品毛片无码| 在线观看免费91| 日韩黄色片在线观看| 欧美成人午夜精品免费| 五月开心婷婷久久| 丰满少妇在线观看bd| 九九热这里只有在线精品视| 91九色成人| 伊人久久婷婷色综合98网| 欧美a级一区二区| 妺妺窝人体色WWW精品| 色综合久久88色综合天天6 | 你懂的国产视频| 亚洲成人在线网| 国产福利在线免费观看| 99视频在线播放| 午夜久久久久| 中文字幕人妻熟女人妻a片| 亚洲色图19p| 国产不卡av在线播放| 欧美成人三级视频网站| 国产精品色婷婷在线观看| 国产福利片一区二区| 国产在线精品一区二区| 四虎884aa成人精品| 欧美一激情一区二区三区| 中文字幕中文字幕在线中高清免费版 | 国产免费美女视频| 宅男噜噜噜66一区二区66| 2024短剧网剧在线观看| 91一区二区三区| 影音先锋日韩资源| 国产福利在线观看视频| 色综合久久久久网| av中文在线| 91久久精品美女高潮| 欧美成人一区二免费视频软件| 国产精品91av| 欧美日韩视频在线| 巨骚激情综合| 成人av.网址在线网站| 午夜日韩在线| 国产老熟女伦老熟妇露脸| 日韩欧美在线视频日韩欧美在线视频| 国产免费av高清在线| 91精品免费看| 亚洲人成高清| 亚洲国产天堂av| 91精品国产综合久久久久久| 久草在线资源站资源站| 精品一区在线播放| 奇米在线7777在线精品| 青青草原在线免费观看视频| 亚洲精品久久久久国产| 日本亚洲欧洲无免费码在线| 日本人妻伦在线中文字幕| 久久综合久久99| 国产精品永久久久久久久久久| 欧美精品videos另类日本| 成人交换视频| 7777在线视频| 91看片淫黄大片一级在线观看| 中文字幕乱码一区二区| 久久久久久成人| 国产成人精品免费视| 亚洲欧美日韩网站| 精品国产91久久久久久| 欧美成人高清在线| 韩国精品一区二区三区六区色诱| 蜜桃视频在线观看一区二区| 日本污视频在线观看|