體驗新輪子 Vite

2021-10-08 02:20:15 字數 1897 閱讀 2275

簡介

vite 是乙個 web server 開發工具,基於瀏覽器的原生 es module 支援,不預處理複雜的依賴關係

vite 打包用 rollup 非 webpack

vite 的按需編譯

webpacl第一次載入時候其實先將完整的專案檔案 build 後將編譯檔案 bundle 放在記憶體中,所以第一次很慢,熱過載快

而 vite 不會任何操作,啟動時只是起 web server,並不會編譯所有的檔案。等請求的時候攔截請求,編譯所需檔案,然後響應

雖然這樣響應變慢,但 vite 會對編譯後結果快取方便下次用。當有 1000 + 檔案時,先全域性編譯和按需編譯的差別感知就比較明顯

vite 只是優化開發體驗的開發工具,最終還是需要打包出來的。第一次啟動時會在 node_module 下快取遞迴依賴檔案。如果依賴版本不變,快取就不會改變,所以第二次 npm run dev 時秒開

webpack vs vite

vue-cli-service serve -> build -> bundle -> 啟動 webserver 響應請求

vite server -> web server -> 攔截請求-編譯請求檔案 -> 相應請求

webpack 先編譯,然後瀏覽器要什麼給什麼 vite 先啟服務,然後要什麼返回編譯後結果

optimize

vite 的乙個子命令npx vite optimize手動生成 node_modules/.vite_opt_cache 快取檔案,

hmr熱重啟

vite build

npm run build 啟動的是 vite build ,會把專案打包在 dist 目錄下,減少 http 請求次數

http1.1 標準下 chrome 同乙個網域名稱請求併發只有 6 個,多的請求只能等待

http2 好很多,具體不清楚。vite 只是開發時候不打包,生產模式依然打包出 dist

ls -al

$ ls -al

total 147

drwxr-xr-x 1 jufjzq 197121

07月 1222:

31.drwxr-xr-x 1 jufjzq 197121

07月 1222:

30..-rw-r--r--

1 jufjzq 197121

356月 2304:

09.gitignore

-rw-r--r--

1 jufjzq 197121

3136月 303:

30 index.html

drwxr-xr-x 1 jufjzq 197121

07月 1222:

36 node_modules

-rw-r--r--

1 jufjzq 197121

2607月 1222:

31package

.json

-rw-r--r--

1 jufjzq 197121

95024

7月 1222:

31package

-lock.json

drwxr-xr-x 1 jufjzq 197121

07月 1222:

30public

drwxr-xr-x 1 jufjzq 197121

07月 1222:

42 src

開頭 d 代表是乙個資料夾,後邊三位一組 r w x。組為當前組具備許可權,當前使用者具備許可權,其他使用者具備許可權。r read w write x 執行權

-rw-r--r-- 1 jufjzq 197121 313 6月 3 03:30 index.html當前使用者繼承與當前組,所以 rw-rw-rw

新的Windows SDK之粗略體驗

1.2個g 解壓縮以後大概 2.3g 在這個安裝包中,我們可以在安裝列表裡看到如下內容 目前據說只支援英文 在 document 下提供了 win32 開發和.net3.0 的文件,看來我們有機會可以提前看下其特性了。但不曉得會和之前的那個版本有什麼區別。另在 samples 裡的示例我想這個都是大...

新的Windows SDK之粗略體驗

1.2個 g,解壓縮以後大概 2.3g 在這個安裝包中,我們可以在安裝列表裡看到如下內容 目前據說只支援英文 在document 下提供了 win32 開發和.net3.0 的文件,看來我們有機會可以提前看下其特性了。但不曉得會和之前的那個版本有什麼區別。另在 samples 裡的示例我想這個都是大...

在開發中如何才能避免重複造輪子和GET新技能

假設,你決定留下來處理這個爛攤子,提供以下建議供參考 第一,你應該得到足夠的職位或授權,乙個程式設計師是沒有足夠的能力處理這個問題的。不在其位,不謀其政,如果你連專案經理或架構師都不是,連技術高層的認可都沒有,那麼還是走為上。第二,建立共識,你的觀察和意見是否能夠得到領導和團隊成員的認可?在團隊目前...