🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

==============================

我正在開發 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!

20260315094604

Vite+ 以 MIT 授權全量開源,所有人免費使用。官方網站已經上線,地址是 viteplus.dev

如果說 Vite 8 的發佈是「換了個引擎」,那 Vite+ 的開源就是直接掀了桌子。它不是 Vite 的升級版,而是一個全新的物種,一個二進位檔案,吃掉你整條前端工具鏈。

Vite+ 到底是什麼

官網給出的定位很直白,"The Unified Toolchain for the Web"。

一句話來說,Vite+ 是一個統一的 Web 開發工具鏈,將 ViteVitestOxlintOxfmtRolldowntsdownVite Task 七個專案合併成了一個 CLI,命令叫 vp

它的野心不小。管建置、管執行時、管套件依賴、管程式碼檢查、管格式化、管測試、管打包發佈,甚至管 monorepo 的任務排程。以前你需要 npmpnpmViteESLintPrettierJestnvm 各自配置、各自維護,現在一個 vp 全包了。

值得注意的是,Vite+ 採用二段式設計:vp 是全域安裝的命令列工具,vite-plus 是每個專案裡安裝的本地套件。這兩者協同工作,vp 負責統一入口,vite-plus 負責具體的建構邏輯。

image.png

完整命令地圖

vp 的命令覆蓋了開發全流程,可從幾個面向來看:

啟動和初始化

  • vp create:建立新專案(支援 app、套件、monorepo 模板)
  • vp migrate:把現有專案遷移到 Vite+
  • vp env:管理 Node.js 版本
  • vp install:用正確的套件管理器安裝依賴
  • vp config:配置 commit hooks 與 agent 整合

日常開發

  • vp dev:開發伺服器,即時 HMR(替代 vite dev
  • vp check:型別檢查 + Lint + 格式化(取代分別執行 tscESLintPrettier
  • vp lint:單獨執行 Lint(替代 ESLint
  • vp fmt:單獨執行格式化(替代 Prettier
  • vp test:執行測試(取代 JestVitest
  • vp staged:對暫存檔案跑檢查(替代 lint-staged

建置與發佈

  • vp build:生產環境建置(替代 vite build
  • vp preview:本地預覽生產建置(替代 vite preview
  • vp pack:函式庫打包 + DTS 產生(替代 tsuptsdown
  • vp run:monorepo 任務執行(帶快取)(替代 turboreponx

依賴管理

  • vp add / vp remove / vp update:套件管理操作
  • vp dedupe / vp outdated / vp why:依賴分析
  • vp dlx:不安裝直接執行套件(類似 npx / npx
  • vpx:全域執行二進位檔

還有一個彩蛋命令 vp implode,會把 vp 本身和所有相關資料從機器上徹底清除;如果用過後覺得不適合,一條命令就能回到乾淨狀態。

官網 viteplus.dev 首頁的終端示例中,用 vp create acme-web --template react-ts 建立 React + TypeScript 專案,從腳手架生成到依賴安裝完成,顯示耗時 1.1 秒。

效能數字很誇張

Vite+ 的底層全部用 Rust 重寫,官方給出的效能對比數據:

  • 生產建置比 webpack 快 40 倍(基於 Vite 8 + Rolldown
  • OxlintESLint 快 50 到 100 倍
  • OxfmtPrettier 快 30 倍
  • 開發時 HMR 始終保持即時回應

這些數字不是 Vite+ 團隊自己編的。OxlintOxfmtOxc 專案裡已經跑了很久的 benchmark,社群早有驗證。Vite+ 所做的是把這些分散的高效能工具統一到一個入口。

vp check 不只是 Lint

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.prettierrcvitest.config.tstsconfig.jsonlint-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 外掛就能搞定所有配置的智能補完。對於強迫症開發者來說,這可能比效能提升更令人興奮。

vp env 能精細管理 Node 版本

nvm 的使用者應該對這類場景很熟悉:不同專案需要不同版本的 Node,切換還容易忘記。

vp env 的設計是讓 nodenpm 等命令都透過 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、更新專案依賴、改寫 vitevitest 的匯入路徑、更新 package.json 裡的 scripts。

官方建議的遷移前準備:先升級到 Vite 8+ 與 Vitest 4.1+,了解現有的 Lint、格式化、測試配置。遷移後跑一遍驗證:

vp install
vp check
vp test
vp build

有趣的一個細節是,官網的遷移文件裡提供了一段專門寫給 AI 程式碼助手的 migration prompt,可以直接貼給 Cursor 或 Claude 來代勞整個遷移過程。這說明 Vite+ 團隊在設計工具時已經把 AI 輔助開發納入考量。

不止是 Vue 生態的事

Vite+ 支援的框架清單相當長,包括 ReactVueSvelteSolidAstroNuxtNext.jsRemix,官網列了超過 20 個框架。

這代表它不是「Vue 生態的專屬工具」。任何前端框架的開發者都可以使用,而且遷移成本幾乎為零,因為底層就是 Vite,現有的 Vite 外掛理論上都能直接使用。

部署方面,Vite+ 可以與 Nitro 配合,直接部署到 VercelNetlifyCloudflareRender 等平台,從 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.jsVite 的創造者
  • LONG Yinan,Oxc 專案的核心作者,Rust 工具鏈領域的資深開發者
  • Christoph Nakazawa,前 Meta 工程師,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,具體形式尚未公開,但很可能是面向企業的增強版或雲端服務。

這與 VercelNext.js 免費,平台收費)的路線類似:以開源工具做成長飛輪,以商業產品做營收。這條路已被驗證過。

現階段要注意的幾點

雖然 Vite+ 的願景很誘人,但目前有幾個現實問題值得正視。

第一,它現在是 Alpha 版本。v0.1.11,連 Beta 都還沒到,API 可能隨時調整,生產環境請三思。官方文件也明確說了,vp migrate 執行完後大多數專案還需要手動調整,不是一鍵無縫的。

第二,「大一統」是雙面刃。統一工具鏈的好處是減少配置與相容性問題,但壞處是若某個模組出問題,整條鏈可能都會受影響。以前 ESLint 出錯不影響建置,以後就不好說了。

第三,生態相容性需要時間。雖然理論上相容 Vite 外掛,但實際使用中肯定會有各種邊界情況,社群外掛的適配需要一段過程。

第四,套件管理這塊水很深。npmpnpmyarn 打了很多年,各家都有自己的解析策略與 lockfile 格式,Vite+ 要在這個領域站穩腳跟,挑戰不小。

這件事的意義

前端工具鏈的碎片化問題困擾社群很久。一個新專案要配置工具鏈就要半天,node_modules 動輒幾百 MB,各種工具之間的版本衝突是家常便飯。

Vite+ 的出現代表了一種趨勢:用 Rust 重寫效能敏感的部分,用統一的入口消除工具之間的縫隙。

類似的嘗試不只有 Vite+ 一家,BunDenoBiome 都在做相似的事。但 Vite+ 有一個獨特優勢:它站在 Vite 的肩膀上,從 ViteVite+ 的遷移路徑最短,用戶基數也是最大的。


原文出處:https://juejin.cn/post/7616948966018891803


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝18   💬9   ❤️1
492
🥈
我愛JS
📝1   💬6  
42
🥉
💬1  
4
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付