前端Vite介紹(現代化前端構建工具,由尤雨溪開發,旨在顯著提升開發體驗和構建效率)ES模塊(ESM)、與傳統Webpack對比、Rollup打包

文章目錄

  • **1. 核心特性**
    • - **極速啟動**:
    • - **按需編譯與熱模塊替換(HMR)**:
    • - **開箱即用**:
    • - **生產環境優化**:
    • - **插件系統**:
  • **2. 工作原理**
    • **開發模式**
      • - **基于 ESM 的按需加載**:
      • - **依賴預構建**:
    • **生產模式**
      • - **Rollup 打包**:
  • **3. 與傳統工具(如 Webpack)的對比**
  • **4. 優勢**
    • - **開發效率提升**:
    • - **輕量高效**:
    • - **生態兼容性**:
    • - **未來兼容性**:
  • **5. 使用場景**
    • - **現代前端項目**:
    • - **快速原型開發**:
    • - **中小型項目**:
    • - **多框架協作**:
  • **6. 安裝與使用**
    • **創建項目**
    • **啟動開發服務器**
    • **生產環境構建**
  • **7. 新特性(Vite 6.0)**
    • - **實驗性環境 API**:
    • - **Node.js 支持**:
    • - **性能優化**:
  • **8. 社區與生態**
    • - **活躍的社區**:
    • - **持續集成測試**:
  • **總結**

Vite 是一款現代化的前端構建工具,由 Vue.js 的作者尤雨溪(Evan You)開發,旨在顯著提升開發體驗和構建效率。以下是關于 Vite 的詳細介紹:


1. 核心特性

- 極速啟動

Vite 在開發模式下利用瀏覽器原生支持的 ES 模塊(ESM),無需打包即可直接運行源代碼,啟動速度極快(幾乎無等待時間)。

- 按需編譯與熱模塊替換(HMR)

開發過程中,Vite 僅編譯當前需要的模塊,并通過 即時熱更新(HMR) 實現代碼修改后自動刷新,無需手動刷新頁面。

- 開箱即用

內置對 TypeScript、JSX、CSS 預處理器(如 Sass/Less)、靜態資源優化等的開箱即用支持,無需額外配置。

- 生產環境優化

使用 Rollup 作為生產環境的打包工具,生成高度優化的靜態資源,支持 Tree Shaking 和代碼分割。

- 插件系統

提供靈活的插件 API,支持與 Vue、React、Svelte 等主流框架集成,并可通過插件擴展功能(如支持舊版瀏覽器)。


2. 工作原理

開發模式

- 基于 ESM 的按需加載

Vite 啟動一個開發服務器,通過瀏覽器原生 ESM 加載源代碼,按需編譯模塊,避免全量打包。

- 依賴預構建

對第三方依賴(如 node_modules 中的庫)進行預構建(轉換為 ESM),提升加載速度。

生產模式

- Rollup 打包

使用 Rollup 進行代碼打包,輸出優化后的生產環境代碼,支持代碼壓縮、Tree Shaking 等優化策略。


3. 與傳統工具(如 Webpack)的對比

特性ViteWebpack
開發啟動速度極快(基于 ESM,無需打包)較慢(需全量打包)
熱更新(HMR)即時更新,無需重新打包依賴打包,更新速度較慢
配置復雜度簡單,開箱即用復雜,需手動配置 Loader/Plugin
生產環境構建使用 Rollup 打包,優化性能使用自身打包邏輯
適用場景現代瀏覽器項目、中小型項目、快速開發體驗大型復雜項目、兼容舊版瀏覽器

4. 優勢

- 開發效率提升

快速啟動和 HMR 讓開發者專注于代碼邏輯,減少等待時間。

- 輕量高效

無需復雜的配置即可實現現代化開發需求。

- 生態兼容性

支持 Vue、React、Svelte 等主流框架,并持續擴展插件生態。

- 未來兼容性

基于現代瀏覽器特性設計,擁抱 ESM 和新標準。


5. 使用場景

- 現代前端項目

適用于 Vue 3、React 18、Svelte 等基于 ESM 的框架項目。

- 快速原型開發

需要快速驗證想法或搭建原型的場景。

- 中小型項目

項目規模較小,對構建速度要求較高。

- 多框架協作

作為統一的構建工具,支持多種框架的集成。


6. 安裝與使用

創建項目

# 使用 npm
npm create vite@latest my-project --template vue# 使用 yarn
yarn create vite my-project --template react# 使用 pnpm
pnpm create vite my-project --template svelte

啟動開發服務器

cd my-project
npm install
npm run dev

生產環境構建

npm run build

7. 新特性(Vite 6.0)

- 實驗性環境 API

提供更接近生產環境的開發體驗,支持框架作者共享構建模塊。

- Node.js 支持

支持 Node.js 18、20 和 22+,移除對 Node.js 21 的支持。

- 性能優化

改進 JSON 序列化、資源引用支持,Sass 默認使用現代 API。


8. 社區與生態

- 活躍的社區

被 Vue、React、Svelte 等生態廣泛采用,社區貢獻豐富插件(如 @vitejs/plugin-react@vitejs/plugin-vue)。

- 持續集成測試

通過 vite-ecosystem-ci 項目持續測試生態兼容性,確保穩定性。


總結

Vite 通過結合現代瀏覽器特性(如 ESM)和輕量化設計,重新定義了前端開發體驗。它特別適合追求高效開發的現代項目,尤其在中小型項目和快速迭代場景中表現突出。如果你希望告別傳統構建工具的復雜性,Vite 是一個值得嘗試的選擇!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/95496.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/95496.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/95496.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python sqlite3模塊

十分想念順店雜可。。。Python 的sqlite3模塊是標準庫中用于操作SQLite 數據庫的工具。SQLite 是一款輕量級嵌入式數據庫(無需獨立服務器,數據存儲在單一文件中),適合小型應用、本地數據存儲或原型開發。sqlite3模塊提供了完整的 …

用 Python 繪制企業年度財務可視化報告 —— 從 Excel 到 9 種圖表全覆蓋

用 Python 繪制企業年度財務可視化報告 —— 從 Excel 到 9 種圖表全覆蓋在企業經營分析中,光看一堆財務數字很難直觀發現規律和問題。 如果能將這些數據轉化為可視化圖表,不僅更美觀,還能幫助管理層快速做出決策。今天,我就用 Py…

一次 Unity ? Android 基于 RSA?OAEP 的互通踩坑記

這篇分享,記錄我如何從“Base64 報錯/平臺不支持/解密失敗”一路定位到“填充算法不一致”的根因,并給出兩條穩定落地方案。同時整理了調試手冊、代碼片段和上線前自檢清單,方便你復用。 背景 Unity 端用公鑰加密一段緊湊 JSON(i…

Go語言GC機制:高效并發回收解析

Go 語言的垃圾回收(Garbage Collection,簡稱 GC)是其自動內存管理的核心機制,旨在自動識別并回收不再被使用的內存,避免內存泄漏,減輕開發者的手動內存管理負擔。Go 的 GC 算法經歷了多次迭代優化&#xff…

imx6ull-驅動開發篇23——Linux 內核定時器實驗

目錄 實驗程序編寫 修改設備樹文件 定時器驅動程序 timer.c 測試 timerApp.c Makefile 文件 運行測試 實驗程序編寫 本講實驗,我們使用正點原子I.MX6U-ALPHA 開發板,通過linux內核定時器周期性的點亮和熄滅開發板上的 LED 燈, LED 燈…

IPTV系統:開啟視聽與管理的全新篇章

在當今數字化飛速發展的時代,IPTV系統正以前所未有的姿態,重塑著我們的視聽體驗與管理模式。它不僅僅是一套技術系統,更是連接信息、溝通情感、提升效率的橋梁,為各個領域帶來了全新的變革與發展機遇。從電視直播的角度來看&#…

PyTorch筆記9----------Cifar10圖像分類

1.圖像分類網絡模型框架解讀 分類網絡的基本結構 數據加載模塊:對訓練數據加載數據重組:組合成網絡需要的形式,例如預處理、增強、各種網絡處理、loss函數計算優化器 數據加載模塊 使用公開數據集:torchvision.datasets使用自定義…

飛凌OK3568開發板QT應用程序編譯流程

飛凌OK3568開發板QT應用程序編譯流程開發環境:ubuntu20.04(主機)、飛凌OK3568開發板一般在linux系統下開發用于ARM開發板的QT應用程序時,直接在主機上開發然后進行交叉編譯即可,但有時候ARM開發板的廠家提供的SDK中可能…

飛算JavaAI合并項目實戰:7天完成3年遺留系統重構

引言 企業數字化進程中,遺留系統改造始終是CIO面臨的頭號難題。某電商平臺的實踐數據顯示:3年以上的Java項目平均存在47%的冗余代碼,63%的架構設計不符合當前業務需求,進行系統性重構需要投入相當于原開發量200%的資源。傳統&quo…

衛星速度增量和比沖及推力之間的關系

一、定義1.1.比沖(Isp):比沖是衡量發動機性能的重要指標,反映了單位重量推進劑在發動機中產生的沖量,單位為米/秒(m/s),代表燃料燃燒時噴流速度。這個單位與速度單位“米/秒”相同&a…

MATLAB繪制各種心形曲線

1.方程(1)心形線的經典隱函數方程為:(2)參數方程(更平滑的心形):(3)極坐標心形線(4)參數方程(3D心形)(5)隱函數3D心形2. MATLAB代碼clc;close all;clear all;warning off;%清除變量 rand(seed, 100); randn…

Django REST Framework視圖

Django REST Framework (DRF) 視圖類詳解DRF 提供了豐富的視圖類來構建 API,從基礎到高級,滿足不同復雜度的需求。以下是 DRF 的主要視圖類及其使用場景:1. 基礎視圖類APIView所有 DRF 視圖的基類,相當于 Django 的 View 類的增強…

Linux面試題及詳細答案 120道(1-15)-- 基礎概念

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

week1-[分支結構]中位數

week1-[分支結構]中位數 題目描述 給定 444 個正整數 a,b,c,da,b,c,da,b,c,d,輸出它們的中位數,答案四舍五入保留 111 位小數。 輸入格式 輸入共 111 行 444 個正整數 a,b,c,da,b,c,da,b,c,d。 輸出格式 輸出共 111 行 111 個浮點數表示答案。 樣例 #1 樣…

[激光原理與應用-259]:理論 - 幾何光學 - 平面鏡的反射、平面透鏡的折射、平面鏡的反射成像、平面透鏡的成像的規律

一、平面鏡的反射規律平面鏡的反射遵循鏡面反射定律,即光線在光滑表面(反射面平整度遠大于波長)發生反射時,滿足以下條件:反射光線、入射光線與法線共面:反射光線、入射光線和法線(垂直于反射面…

相機按鍵功能解析

相機按鍵功能解析佳能相機按鍵機身背面機身正面機身頂部機身側面 佳能相機按鍵 機身背面取景器目鏡:用于拍攝時觀察相機形成的圖像。實拍顯示/視頻拍攝按鈕:按下即可開始拍攝或錄制視頻。光圈/曝光補償鍵:調整光圈大小和曝光補償,…

51單片機-驅動LED模塊教程

本章思維導圖: 51單片機驅動LED燈模塊 LED燈元器件簡介 LED(Light Emitting Diode,發光二極管) 是一種固態半導體器件,通過P-N結中電子與空穴復合直接將電能轉化為光能。其核心結構由P型半導體(空穴主導&a…

Git 完全手冊:從入門到團隊協作實戰(2)

Hello大家好&#xff01;很高興我們又見面啦&#xff01;給生活添點passion&#xff0c;開始今天的編程之路&#xff01; 我的博客&#xff1a;<但凡. 我的專欄&#xff1a;《編程之路》、《數據結構與算法之美》、《C修煉之路》、《Linux修煉&#xff1a;終端之內 洞悉真理…

c語言中堆和棧的區別

1.棧區(stack):由編譯器自動分配釋放&#xff0c;棧主要用于存儲局部變量、函數參數、函數調用和返回信息等。其操作方式類似于數據結構中的棧。 2.堆區(heap):一般由程序員分配釋放&#xff0c;若程序員不釋放&#xff0c;則可能會引起內存泄漏。注堆和數據結構中的堆棧不一樣…

華為實驗WLAN 基礎配置隨練

業務vlan 20 192.168.20.x管理vlan 100 192.168.100.x步驟① 網絡互通Core sw:vlan batch 20 100 dhcp enable int vlanif 20IP add 192.168.20.1 24dhcp select interfaceinterface GigabitEthernet0/0/1/2port link-type trunkport trunk pvid vlan 100port trunk allow-pas…