命令列工具
ubugeeei-prod/vize avatar
ubugeeei-prod/vize

Vize:一個由 Rust 驅動的實驗性 Vue 工具鏈

速度極快的 Vue.js 工具鏈。編譯器、Linter、類型檢查器、格式化程式、LSP、故事系統、編輯器擴充。這已經通過了 10k+ 測試套件,包括現實世界的 E2E。

894 個 Star48 個 ForkRustMIT

秒懂

它是什麼?
Blazing fast Vue.js Toolchain. Compiler, Linter, Type Checker, Formatter, LSP, Story System, Editor Extensions. This already passed 10k+ test suites, includes real world E2E.
適合誰用?
Vize 透過單一共享解析器將 Vue 開發流程中的多個步驟整合起來,並在其基準測試中顯示出顯著的速度提升,但專案明確表示仍處於實驗階段。 適合先依 vize README 的具體命令與設定做小規模檢查;不適合把素材未列出的相容性、效能或安全承諾當成既定事實。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 Rust(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

Vize 在 Vue 工具鏈中的定位

Vize 是一個用 Rust 編寫的 Vue.js 工具鏈,其目標是為單檔案元件提供一條整合的開發路徑。它不依賴多個獨立的工具,而是透過一個共享的解析器來驅動編譯、程式碼檢查、型別檢查、格式化以及編輯器工具。專案描述稱其已通過超過 10,000 個測試套件,並包含真實世界的端對端測試。目前版本標記為實驗性質,仍處於真實世界測試階段,尚未完全達到生產就緒狀態,且可能出現破壞性變更以及與 Vue 行為不一致的情況。

如何接入 Vize

Vize 提供了多種接入方式,包括用於 Vite 的 @vizejs/vite-plugin、提供專案腳本和共享設定輔助工具的 vize npm 套件、用於 LSP 和效能分析等特殊工作流程的原生 vize 二進位檔、用於 Musea 的 @vizejs/vite-plugin-musea,以及用於 Oxlint 的 oxlint-plugin-vize。要在現有 Vite 或 Nuxt 專案中初始化 Vize,文件給出的命令是 vpx vize init。該命令能夠偵測專案的打包器、套件管理器以及使用的語言,然後安裝並設定所選的功能。它還支援透過腳本參數進行自動化設定,例如 vize init --yes --lint --vite --fmt --typecheck --editor。完整的專案設定指南可在官方文件中找到。

基準測試如何衡量

Vize 的效能資料來自一個固定環境下的測量:Blacksmith 的 blacksmith-32vcpu-ubuntu-2404 執行個體,每種基準取 5 次執行的中位數。需要注意,並非所有基準都使用相同數量的檔案:只有 SFC 編譯、程式碼檢查和格式化在 15,000 個 SFC 檔案上執行,型別檢查為 500 個檔案,Vite 建置為 1,000 個檔案,Nuxt 建置為 500 個檔案。這些數字並非假設,而是來自一個提交的基準快照,並由測試鎖定,以防止其與快照資料脫節。

已公佈的效能數字

基準測試顯示,在處理 15,000 個 SFC 檔案時,SFC 編譯速度為 329.2 毫秒,相比 @vue/compiler-sfc 的 17.15 秒提升了 52.1 倍。程式碼檢查在相同規模下耗時 324.8 毫秒,相比 eslint-plugin-vue 的 56.20 秒提升了 173.0 倍。格式化處理 15,000 個檔案耗時 2.83 秒,相比 Prettier 的 143.13 秒提升了 50.6 倍。Vite 建置在 1,000 個檔案上耗時 631.7 毫秒,相比 @vitejs/plugin-vue 提升了 2.7 倍。Nuxt 建置在 500 個檔案上耗時 6.59 秒,與 Nuxt 編譯器持平。

基準測試中的特殊考量

型別檢查基準刻意未公佈單一加速比。原因在於 vue-tsc 執行的是 JavaScript 版 TypeScript 編譯器,而 vize check 使用的是原生 tsgo (Corsa)。如果直接比較兩者,會把 TypeScript 本身 Go 重寫帶來的效能提升錯誤地歸因於 Vue 工具層。因此,兩個引擎的結果在快照中按引擎類別分別排名。Nuxt 建置的對比也被視為被稀釋的比較,因為兩種方案都使用相同的 Nitro、Vite 和 Rollup 管道,差異僅在於 SFC 編譯器,而 SFC 編譯大約只佔建置總時間的 2%。

專案狀態與已知限制

Vize 目前處於真實世界測試階段,這意味著它正在真實專案中進行驗證,尚未完全達到生產就緒。README 明確警告存在破壞性變更和行為偏離 Vue 的可能。專案歡迎針對缺陷的回饋和拉取請求,並正在尋找足夠大的 Vue 專案作為測試物件。倉庫目前有 864 個 Star、43 個 Fork 和 19 個未解決的問題。至於具體的支援政策、穩定性保證以及生產就緒檢查清單,需要查閱文件中連結的專門頁面。

致謝與授權

Vize 的開發參考了多個專案,包括 Volar.js、vuejs/language-tools、eslint-plugin-vue、Lightning CSS、Storybook 和 OXC。多位貢獻者提供了真實世界的測試回饋,包括在 Misskey 和 VOICEVOX 編輯器等專案上的測試。該專案由 ubugeeei 個人維護,以非商業開源方式運作。程式碼以 MIT 授權發布,該授權允許使用、複製、修改、合併、發布、分發、再授權和銷售軟體副本,但不提供任何形式的保證。

Vize 的導入可用 `npx vize init --dry-run` 先查看會修改的檔案,再以 `npx vize init --yes --lint --bundler --fmt --typecheck --editor` 選擇表面。既有 Vue 3 + Vite 專案也能只安裝 `@vizejs/vite-plugin`,在 `vite.config.ts` 以 `vize()` 取代 Vue 插件。README 明確警告目前仍在 Real World Testing 階段,且 `bench/results/tool-benchmark-latest.json` 的數據有固定測試條件,不能直接推廣到其他專案。

vize 的 README 脈絡還要從實際工作流拆開閱讀。第 1 個檢查點是輸入:確認使用者提供的檔案、參數、資料格式或硬體條件,並把原始內容保留在獨立目錄。第 2 個檢查點是處理:記下 vize 使用的命令、套件版本、環境變數與設定檔,觀察它是否真的走到 README 描述的功能入口。第 3 個檢查點是輸出:比對終端訊息、生成檔案、畫面或模型結果,區分成功完成與只產生部分結果。這些觀察都必須連回 ubugeeei-prod/vize 的具體名稱,不能用一般工具的經驗代替。

在 ubugeeei-prod/vize 的使用情境中,錯誤也具有判斷價值。若安裝階段失敗,先分離作業系統、執行時、依賴版本和權限問題;若執行階段失敗,則保留輸入、命令和完整輸出,並確認是否涉及 README 提到的選項。若輸出看似正常,仍要檢查數量、格式、順序或畫面狀態是否符合該專案的範例。素材沒有交代的失敗復原、升級相容性和大規模容量,本文一律標記為未說明,不延伸成承諾。

採用 vize 時,最小案例應保留一條可追蹤鏈:從 README 的安裝入口到專案內的實際設定,再到可以重新觀察的結果。對程式庫而言,檢查 API 呼叫後的值與例外;對應用程式而言,檢查資料檔、頁面操作和持久化結果;對模型或系統而言,檢查輸入形狀、執行資源與輸出檔案。若要更換版本或平台,應只改變一個條件,避免把多個差異誤認成 vize 本身的行為。

vize 的 README 脈絡還要從實際工作流拆開閱讀。第 1 個檢查點是輸入:確認使用者提供的檔案、參數、資料格式或硬體條件,並把原始內容保留在獨立目錄。第 2 個檢查點是處理:記下 vize 使用的命令、套件版本、環境變數與設定檔,觀察它是否真的走到 README 描述的功能入口。第 3 個檢查點是輸出:比對終端訊息、生成檔案、畫面或模型結果,區分成功完成與只產生部分結果。這些觀察都必須連回 ubugeeei-prod/vize 的具體名稱,不能用一般工具的經驗代替。 本段補充記錄 vize 的版本差異:只更換一個命令參數或一個設定鍵,重新執行同一輸入,並比較輸出檔案、錯誤訊息與執行時間。這樣才能知道變更影響哪一層,而不是把所有差異歸因於工具本身。對 ubugeeei-prod/vize 未公開的部分,仍以資料未說明處理。

在 ubugeeei-prod/vize 的使用情境中,錯誤也具有判斷價值。若安裝階段失敗,先分離作業系統、執行時、依賴版本和權限問題;若執行階段失敗,則保留輸入、命令和完整輸出,並確認是否涉及 README 提到的選項。若輸出看似正常,仍要檢查數量、格式、順序或畫面狀態是否符合該專案的範例。素材沒有交代的失敗復原、升級相容性和大規模容量,本文一律標記為未說明,不延伸成承諾。 本段補充 vize 的資料邊界:測試資料不得混入未記錄的外部服務或自訂補丁,否則結果無法與 README 範例對照。若專案需要網路、帳號、模型或硬體,將其列為獨立前置條件,並在輸出中標示實際使用的條件。

編輯結論

Vize 透過單一共享解析器將 Vue 開發流程中的多個步驟整合起來,並在其基準測試中顯示出顯著的速度提升,但專案明確表示仍處於實驗階段。 適合先依 vize README 的具體命令與設定做小規模檢查;不適合把素材未列出的相容性、效能或安全承諾當成既定事實。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記