前端技術週刊 2022-12-10:Vite 正式釋出 4.0
釋出時間: 2022.12.10
本週內容: 行業資訊x2、開源專案x6、線上教程x1、工具推薦x2、行業先驅x1
行業資訊
Vite 正式釋出 4.0
Vite 是一個全新的前端開發與構建工具,區別於傳統工具的設計,基於 unbundled 的設計讓它的擁有極速的服務啟動後和熱更新。目前 Vite 在 npm 每週下載超過 250 萬次,在昨日,Vite 正式釋出了 4.0 版本,主要有如下更新:
1. 升級至 Rollup 3.x
Rollup 3.0 在今年 10 月份正式釋出,具體更新可以參考更新日誌。
2. 為 React 提供多個外掛選擇
Vite 團隊認為 SWC 現在是 Babel 的成熟替代品,尤其是在 React 專案中。SWC 的 React Fast Refresh 實現比 babel 快很多,對於一些專案來說,它現在是一個更好的選擇。從 Vite 4 開始,將官方提供兩個外掛以供選擇。
@vitejs/plugin-react
:基於 esbuild 和 Babel 的外掛,以較小的包占用空間和 Babel 的靈活性實現快速 HMR。@vitejs/plugin-react-swc
:基於 SWC 的外掛,在構建過程中使用 esbuild,但在開發過程中將 Babel 替換為 SWC。對於不需要非標準 React 擴充套件的大型專案,冷啟動和 HMR 可以明顯加快。
3.瀏覽器相容性
構建 Safari14 預設以更廣泛的 ES2020 相容性為目標。這意味著現在可以使用 BigInt,並且不再轉譯 nullish 合併運算子。如果您需要支援舊版瀏覽器,可以使用 @vitejs/plugin-legacy
。
4. CSS 作為字串匯入
在 Vite 3 中,匯入 .css 檔案的預設匯出可能會導致 CSS 的雙重載入。
TS
import cssString from './global.css'
這種雙重載入可能會發生,因為 .css 將生成樣式檔案,並且 CSS 字串也可能會被應用程式程式碼使用。從 Vite 4 開始,.css 預設匯出已被棄用,可以使用 ?inline
進行行內匯入,並且不會生成樣式檔案。
ts
import stuff from './global.css?inline'
5. 環境變數
Vite 現在使用 dotenv16 和 dotenv-expand9(之前是 dotenv14 和 dotenv-expand5)。如果變數值包含 # 或 `,則需要用引號將它們括起來。
diff
-VITE_APP=ab#cd`ef
+VITE_APP="ab#cd`ef"
6. 其它更新
- CLI 增加 h 命令以檢視全部
- 預構建支援
patch-package
- 更簡潔的構建日誌輸出
- 改進 SSR 期間的錯誤資訊
- 縮小包體積,比 Vite3 小 23%
npm 上線安全相關重要功能
1. 細粒度 Token
npm 此前一直無法建立具有最小特權模型的令牌,以限制意外或故意濫用令牌的影響。新的細粒度訪問令牌允許你細粒度控制訪問許可權,包括:
- 控制有效時間
- 控制 IP 白名單
- 控制具體組織或具體包的訪問許可權
2. 線上檢視程式碼
線上檢視程式碼此前一直是一項付費功能,多年來一直供團隊和專業使用者使用,現在 npm 將其改進並開放給所有人使用。這是一個令人激動的進步,因為在此之前,開發者都需要安裝到本地之後才可以檢視 npm 實際安裝包程式碼的構成,然而因為有 npm install 鉤子的存在使得安裝過程並不是安全的。
開源專案
Rough.js(17.7k star)
一個小型 (<9 kB) 圖形庫,可讓您繪製草圖、類似手繪的風格。該庫定義了繪製直線、曲線、圓弧、多邊形、圓和橢圓的基元。它還支援繪製SVG 路徑。
wired-elements(9.2k star)
手繪風格、粗略外觀的 web component 元件庫。元素的繪製具有足夠的隨機性,沒有兩個效果圖是完全相同的,就像兩個獨立的手繪形狀一樣。值得一提的是該專案基於 Rough.js 和 Lit 構建。
react-spring(24.6k star)
一個基於彈簧物理學的 React 動畫庫,可以幫助你構建栩栩如生的應用。它非常靈活,幾乎涵蓋了所有的 UI 動畫需求,並提供了 render props 和 react hooks 兩種不同的 API。
vanilla-extract(6.9k star)
一個使用 TypeScript 作為“前處理器”的零執行時 CSS 框架,就像 Less 和 Sass 一樣在構建時生成所有樣式。
GoView(4.8k star)
一個使用 Vue3 搭建的低程式碼資料視覺化開發平臺,將圖表或頁面元素封裝為基礎元件,無需編寫程式碼即可完成業務需求,它的技術棧為:Vue3 + TypeScript4 + Vite2 + NaiveUI + ECharts5 + Axios + Pinia2 + PlopJS。
react-use-wizard(368 star)
一個使用 React Hooks 構建的分步器,很簡單,聚焦在邏輯上,沒有任何 UI 限制,你可以使用在任何分步 UI(比如分步表單)中。
線上教程
現代 JavaScript 教程
該教程以最新的 JavaScript 標準為基準。通過簡單但足夠詳細的內容,為你講解從基礎到高階的 JavaScript 相關知識。
工具推薦
公版影像典藏計劃
收錄 1894 -1967 年的影像資料,包含電影、動畫片、紀錄片、珍貴史料四大類。除了影像本身,還對其進行多維度彙編,如:撰寫詞條、專業評論、收集電影或相關人物的精彩周邊、提供參考文獻等。
千億畫素看世界
一座城一幅圖,打造世界城市入口,該工具可以帶你身臨其境一般地探索世界和中國個大城市。
行業先驅
克利斯登·奈加特
克利斯登·奈加特(1926年8月27日-2002年8月10日),挪威電腦科學家,社會活動家,馮·諾伊曼獎和圖靈獎獲得者,Simula 的創始人,面向物件技術的先驅。
克利斯登·奈加特與奧利-約翰·達爾一道開發了最早的面向物件的程式設計語言 SIMULA-I(1961年—1965年)和 SIMULA-67,首次引入了面向物件程式設計語言的基本概念:物件、類、繼承、虛擬量、多執行緒等,這兩位先驅先後獲得諾伯特·維納獎、羅辛獎、約翰·馮諾依曼獎、圖靈獎等眾多獎項。
本週素材由達觀資料鍾慎恩、趙衛紅、沈琬婷、陳泳巨集、蘇玉春等同學提供。