==============================
我正在開發 DocFlow,它是一個完整的 AI 全栈協同文件平台。該專案融合了多個技術棧,包括基於
Tiptap的富文本編輯器、NestJs後端服務、AI集成功能和即時協作。在開發過程中,我累積了豐富的實戰經驗,涵蓋了Tiptap的深度客製、效能優化和協作功能的實作等核心難點。
如果你對 AI 全栈開發、Tiptap 富文本編輯器客製或 DocFlow 專案的完整技術方案感興趣,歡迎加我微信 yunmz777 進行私聊諮詢,獲取詳細的技術分享和最佳實踐。
如果你對 AI 全栈感興趣,也歡迎添加我微信,我拉你進交流群
3 月 13 日深夜,尤雨溪在 X 上發了一條推文,平靜地宣布了一件大事。
We are happy to announce that Vite+ is now fully open source under MIT license. Free for everyone!

Vite+ 以 MIT 授權全量開源,所有人免費使用。官方網站已經上線,地址是 viteplus.dev。
如果說 Vite 8 的發佈是「換了個引擎」,那 Vite+ 的開源就是直接掀了桌子。它不是 Vite 的升級版,而是一個全新的物種,一個二進位檔案,吃掉你整條前端工具鏈。
官網給出的定位很直白,"The Unified Toolchain for the Web"。
一句話來說,Vite+ 是一個統一的 Web 開發工具鏈,將 Vite、Vitest、Oxlint、Oxfmt、Rolldown、tsdown、Vite Task 七個專案合併成了一個 CLI,命令叫 vp。
它的野心不小。管建置、管執行時、管套件依賴、管程式碼檢查、管格式化、管測試、管打包發佈,甚至管 monorepo 的任務排程。以前你需要 npm、pnpm、Vite、ESLint、Prettier、Jest、nvm 各自配置、各自維護,現在一個 vp 全包了。
值得注意的是,Vite+ 採用二段式設計:vp 是全域安裝的命令列工具,vite-plus 是每個專案裡安裝的本地套件。這兩者協同工作,vp 負責統一入口,vite-plus 負責具體的建構邏輯。

vp 的命令覆蓋了開發全流程,可從幾個面向來看:
啟動和初始化
Vite+日常開發
vite dev)tsc、ESLint、Prettier)ESLint)Prettier)Jest、Vitest)lint-staged)建置與發佈
vite build)vite preview)tsup、tsdown)turborepo、nx)依賴管理
npx / npx)還有一個彩蛋命令 vp implode,會把 vp 本身和所有相關資料從機器上徹底清除;如果用過後覺得不適合,一條命令就能回到乾淨狀態。
官網 viteplus.dev 首頁的終端示例中,用 vp create acme-web --template react-ts 建立 React + TypeScript 專案,從腳手架生成到依賴安裝完成,顯示耗時 1.1 秒。
Vite+ 的底層全部用 Rust 重寫,官方給出的效能對比數據:
webpack 快 40 倍(基於 Vite 8 + Rolldown)Oxlint 比 ESLint 快 50 到 100 倍Oxfmt 比 Prettier 快 30 倍這些數字不是 Vite+ 團隊自己編的。Oxlint 和 Oxfmt 在 Oxc 專案裡已經跑了很久的 benchmark,社群早有驗證。Vite+ 所做的是把這些分散的高效能工具統一到一個入口。
vp check 是這個工具鏈中設計最有意思的命令之一,值得單獨說明。
它把三件事合進一個命令:Oxfmt 負責格式化、Oxlint 負責程式碼檢查、tsgolint 負責 TypeScript 型別檢查。三個工具並行執行,比分別執行快得多。
當你在 vite.config.ts 裡開啟 typeCheck 選項後,vp check 還會接入 TypeScript 的 Go 工具鏈做型別感知的靜態分析,這是微軟正在推進的下一代 TypeScript 編譯器,速度比原來的 tsc 快了一個數量級。
import { defineConfig } from 'vite-plus'
export default defineConfig({
lint: {
options: {
typeAware: true,
typeCheck: true,
},
},
})
開啟之後,一條 vp check 就能搞定格式、Lint、型別三重檢查。加上 --fix 參數還能自動修復可修復的問題:
vp check # 檢查
vp check --fix # 檢查並自動修復
以前的前端專案,配置檔能鋪滿專案根目錄:vite.config.ts、.eslintrc、.prettierrc、vitest.config.ts、tsconfig.json、lint-staged.config.js……
Vite+ 的做法是把所有配置收攏到一個 vite.config.ts:
import { defineConfig } from 'vite-plus'
export default defineConfig({
// 開發伺服器
server: { port: 3000 },
// Oxlint 規則
lint: {
options: {
typeAware: true,
typeCheck: true,
},
},
// Oxfmt 格式化
fmt: { /* ... */ },
// Vitest 測試
test: { /* ... */ },
// 任務排程
tasks: { /* ... */ },
// commit 前的暫存檢查(替代 lint-staged)
staged: {
'*.{js,ts,tsx,vue,svelte}': 'vp check --fix',
},
// 函式庫打包(替代 tsdown.config.ts)
pack: {
entry: ['src/index.ts'],
dts: true,
format: ['esm', 'cjs'],
},
})
一個檔案、一套型別提示、一個 IDE 外掛就能搞定所有配置的智能補完。對於強迫症開發者來說,這可能比效能提升更令人興奮。
nvm 的使用者應該對這類場景很熟悉:不同專案需要不同版本的 Node,切換還容易忘記。
vp env 的設計是讓 node、npm 等命令都透過 Vite+ 的 shim 來走,自動識別當前專案鎖定的 Node 版本,無需手動切換。
常用命令:
vp env pin lts # 把專案鎖定到最新 LTS 版本(寫入 .node-version)
vp env use 20 # 當前 shell 會話臨時切換到 Node 20
vp env default lts # 設定全域預設版本
vp env current # 查看當前解析到的環境
vp env doctor # 執行環境診斷,排查問題
vp env list # 列出本機已安裝的版本
vp env list-remote --lts # 查看可安裝的 LTS 版本清單
如果你不想讓 Vite+ 接管 Node 版本管理,可以用 vp env off 切到「系統優先」模式,Vite+ 只在系統 Node 找不到時才接管。
這是官網裡最有價值的部分之一,也是原文沒有覆蓋到的細節。
對於既有的 Vite 專案,遷移命令是:
vp migrate
這條命令會自動完成:把各個工具的分散配置合併進 vite.config.ts、更新專案依賴、改寫 vite、vitest 的匯入路徑、更新 package.json 裡的 scripts。
官方建議的遷移前準備:先升級到 Vite 8+ 與 Vitest 4.1+,了解現有的 Lint、格式化、測試配置。遷移後跑一遍驗證:
vp install
vp check
vp test
vp build
有趣的一個細節是,官網的遷移文件裡提供了一段專門寫給 AI 程式碼助手的 migration prompt,可以直接貼給 Cursor 或 Claude 來代勞整個遷移過程。這說明 Vite+ 團隊在設計工具時已經把 AI 輔助開發納入考量。
Vite+ 支援的框架清單相當長,包括 React、Vue、Svelte、Solid、Astro、Nuxt、Next.js、Remix,官網列了超過 20 個框架。
這代表它不是「Vue 生態的專屬工具」。任何前端框架的開發者都可以使用,而且遷移成本幾乎為零,因為底層就是 Vite,現有的 Vite 外掛理論上都能直接使用。
部署方面,Vite+ 可以與 Nitro 配合,直接部署到 Vercel、Netlify、Cloudflare、Render 等平台,從 SPA 到全棧 meta 框架都有完整支援。
macOS 或 Linux 下:
curl -fsSL https://vite.plus | bash
Windows(PowerShell)下:
irm https://vite.plus/ps1 | iex
安裝後會得到一個獨立的二進位檔,不依賴 Node.js 全域安裝,也不需要 npm install -g。安裝後打開新的終端視窗,執行 vp help 就能看到所有命令。在 CI 環境可使用官方提供的 setup-vp Action。
執行 vp upgrade 可以把 vp 本身更新到最新版。
Vite+ 背後是 VoidZero,尤雨溪在 2024 年創立的公司,專注於 Web 工具鏈。核心團隊成員中有幾個名字值得注意:
Vue.js 與 Vite 的創造者Oxc 專案的核心作者,Rust 工具鏈領域的資深開發者Jest 的創造者沒錯,Jest 的創造者現在在為 Vite+ 撰寫測試框架。這個陣容不用多說明。
GitHub 倉庫顯示,Vite+ 的程式碼庫有 608 個 commit,62.9% 是 Rust,33.4% 是 TypeScript。目前最新版本是 v0.1.11,處於 Alpha 階段。
而 Vite 本身每週 npm 下載量已達 6,900 萬次,GitHub 星標 78.7K,是前端建置工具的事實標準。Vitest 每週下載量也超過 3,500 萬。這套工具鏈的使用者基數不需要從零開始累積。
很多人關心的問題是:這麼大的專案,免費能持續多久?
VoidZero 的做法是,Vite+ 完全開源,MIT 授權,永久免費。公司的營收來源是另一個獨立的商業產品 Void,具體形式尚未公開,但很可能是面向企業的增強版或雲端服務。
這與 Vercel(Next.js 免費,平台收費)的路線類似:以開源工具做成長飛輪,以商業產品做營收。這條路已被驗證過。
雖然 Vite+ 的願景很誘人,但目前有幾個現實問題值得正視。
第一,它現在是 Alpha 版本。v0.1.11,連 Beta 都還沒到,API 可能隨時調整,生產環境請三思。官方文件也明確說了,vp migrate 執行完後大多數專案還需要手動調整,不是一鍵無縫的。
第二,「大一統」是雙面刃。統一工具鏈的好處是減少配置與相容性問題,但壞處是若某個模組出問題,整條鏈可能都會受影響。以前 ESLint 出錯不影響建置,以後就不好說了。
第三,生態相容性需要時間。雖然理論上相容 Vite 外掛,但實際使用中肯定會有各種邊界情況,社群外掛的適配需要一段過程。
第四,套件管理這塊水很深。npm、pnpm、yarn 打了很多年,各家都有自己的解析策略與 lockfile 格式,Vite+ 要在這個領域站穩腳跟,挑戰不小。
前端工具鏈的碎片化問題困擾社群很久。一個新專案要配置工具鏈就要半天,node_modules 動輒幾百 MB,各種工具之間的版本衝突是家常便飯。
Vite+ 的出現代表了一種趨勢:用 Rust 重寫效能敏感的部分,用統一的入口消除工具之間的縫隙。
類似的嘗試不只有 Vite+ 一家,Bun、Deno、Biome 都在做相似的事。但 Vite+ 有一個獨特優勢:它站在 Vite 的肩膀上,從 Vite 到 Vite+ 的遷移路徑最短,用戶基數也是最大的。