- Hợp nhất cấu trúc kép esbuild + Rollup hiện có thành trình bundler Rolldown dựa trên Rust, đạt hiệu năng build nhanh hơn tối đa 10–30 lần
- Công bố plugin registry mới, cho phép tìm kiếm và quản lý plugin của Vite, Rolldown và Rollup
- Bổ sung các tính năng hỗ trợ phát triển như Vite Devtools, phân giải đường dẫn TypeScript, Wasm SSR, console forwarding
- Bản phát hành này là thay đổi kiến trúc lớn nhất trong hệ sinh thái Vite, đặt nền tảng cho sự phát triển của toolchain tích hợp trong tương lai
Vite 8 dựa trên Rolldown
- Vite 8 hợp nhất cấu trúc bundler kép hiện có gồm esbuild (dùng cho phát triển) và Rollup (dùng cho production) thành một bundler duy nhất là Rolldown
- Rolldown là trình bundler hiệu năng cao được viết bằng Rust, hỗ trợ cùng plugin API như Rollup
- Phần lớn plugin Vite hiện có hoạt động mà không cần chỉnh sửa riêng
- Hiệu năng nhanh hơn Rollup từ 10 đến 30 lần, đồng thời hỗ trợ các tính năng nâng cao như cache theo mô-đun, chia chunk linh hoạt, Module Federation
Quá trình đưa Rolldown vào sử dụng
- Ban đầu, bản xem trước công nghệ được cung cấp qua gói
rolldown-vite để thu thập phản hồi từ cộng đồng
- Thử nghiệm trên nhiều codebase thực tế khác nhau để giải quyết các vấn đề tương thích
- Xây dựng hệ thống kiểm thử CI chuyên dụng cho các plugin và framework chủ chốt
- Vào tháng 12 năm 2025, Vite 8 beta được công bố và tích hợp Rolldown hoàn toàn
- Trong thời gian beta, Rolldown được ổn định hóa và tiến tới giai đoạn Release Candidate
Các trường hợp cải thiện hiệu năng thực tế
- Nhiều công ty đã báo cáo hiệu quả rút ngắn thời gian build
- Linear: 46 giây → 6 giây
- Ramp: giảm 57%
- Mercedes-Benz.io: giảm tối đa 38%
- Beehiiv: giảm 64%
- Dự án càng lớn thì hiệu quả càng rõ rệt, và Rolldown được báo trước sẽ còn tiếp tục cải thiện
Toolchain tích hợp và stack công nghệ
- Vite 8 phát triển thành toolchain end-to-end nơi Vite (công cụ build), Rolldown (bundler), Oxc (compiler) phối hợp chặt chẽ với nhau
- Bảo đảm tính nhất quán xuyên suốt toàn bộ quá trình parsing, transform và optimize
- Có thể tối ưu tree-shaking bằng cách tận dụng semantic analysis của Oxc
- Cấu trúc cho phép nhanh chóng tiếp nhận các đặc tả JS mới
Tính năng bổ sung
- Vite Devtools: có thể phân tích trực quan trạng thái dự án trên development server
- Hỗ trợ tích hợp tự động phân giải đường dẫn TypeScript (alias) và emitDecoratorMetadata
- Wasm SSR: hỗ trợ import
.wasm?init trong môi trường server-side rendering
- Browser console forwarding: chuyển lỗi trên trình duyệt tới terminal để tăng hiệu quả debug
- @vitejs/plugin-react v6: loại bỏ Babel, áp dụng React Refresh dựa trên Oxc, giảm dung lượng cài đặt
Định hướng phát triển tiếp theo
- Full Bundle Mode (thử nghiệm): thực hiện bundling ngay cả trong quá trình phát triển để đạt khởi động server nhanh hơn 3 lần, reload nhanh hơn 40%, ít request mạng hơn 10 lần
- Thu hẹp khoảng cách hiệu năng giữa Rust và JS bằng truyền Raw AST và chuyển đổi Native MagicString
- Đang thúc đẩy hợp tác trong hệ sinh thái để ổn định hóa Environment API
Thay đổi dung lượng cài đặt
- Vite 8 tăng khoảng 15MB so với Vite 7
- lightningcss (khoảng 10MB): cung cấp tính năng nén CSS mặc định
- Rolldown binary (khoảng 5MB): dung lượng tăng để tối ưu tốc độ
- Việc tối ưu dung lượng sẽ tiếp tục trong các bản phát hành sau
Hướng dẫn migration
- Phần lớn dự án có thể nâng cấp mà không cần thay đổi cấu hình
- Các thiết lập
esbuild và rollupOptions hiện có sẽ được tự động chuyển đổi
- Với các dự án lớn, khuyến nghị migration theo 2 giai đoạn
- Chuyển từ Vite 7 sang
rolldown-vite, sau đó nâng cấp lên Vite 8
- Có thể xem quy trình chi tiết trong Migration Guide và Changelog chính thức
Lời cảm ơn tới Rollup và esbuild
- Rollup đã cung cấp nền tảng cho hệ sinh thái plugin của Vite, và Rolldown kế thừa API đó
- esbuild là công nghệ cốt lõi giúp tạo ra trải nghiệm phát triển nhanh, đồng thời mở đường cho sự phát triển của tooling dựa trên Rust và Go
- Những đóng góp của hai dự án này đã ăn sâu vào DNA của Vite
Cộng đồng và hợp tác
- Việc phát triển Vite 8 được hoàn thiện nhờ sự hợp tác giữa sapphi-red và đội ngũ Vite, đội ngũ Rolldown, cùng rất nhiều người đóng góp trong cộng đồng
- VoidZero, Bolt, NuxtLabs tham gia với vai trò đối tác chủ chốt
5 bình luận
Ý kiến trên Hacker News
Điều này khiến mình một lần nữa nghĩ đến việc ngành này đã lãng phí biết bao tài nguyên tính toán cho những công cụ kém hiệu quả mà mọi người vẫn dùng không chút nghi ngờ, kiểu như “build thì vốn dĩ phải chậm”
Chúng ta lên lịch làm việc xoay quanh những lần build chậm đó, biến giờ nghỉ thành chuyện đùa, thậm chí còn dựng cả các lớp cache
Xin dành lời khen cho các maintainer của Vite
Phần lớn phần mềm production chạy chậm hơn mức cần thiết hàng chục lần
Việc các ứng dụng Electron ngốn vài GB RAM mà vẫn giật lag hơn cả phần mềm từ 40 năm trước chính là bằng chứng
14 năm trước, khi nhận ra lượng thời gian bị lãng phí chỉ vì ngồi chờ build, mình thấy vấn đề này đặc biệt nghiêm trọng trong hệ sinh thái Java
Trước đây mình từng có một dự án Ruby mà mỗi lần chạy integration test lại mất 10 phút chỉ để tạo lại DB
Kotlin/Spring Boot cũng compile chậm, còn compiler Rust thì cũng không hẳn là nhanh
Nhưng test là thứ chúng ta có thể kiểm soát. Unit test nên xong trong vài mili giây, còn integration test có thể cải thiện đáng kể nhờ chạy song song và random hóa dữ liệu
Trên MacBook Pro, mình chạy hàng trăm bài test tích hợp Spring có cả Redis, DB và Elasticsearch trong chưa đến 40 giây
Chỉ cần thiết lập một lần như vậy là bạn có ngay vòng lặp phản hồi nhanh, và niềm vui phát triển phần mềm sẽ quay trở lại
Phần mình đóng góp cho Vite 8 là hỗ trợ Wasm SSR
Mình đã mở rộng để import
.wasm?inithoạt động cả trong môi trường SSRQuá trình có chậm, nhưng điều khiến mình ấn tượng là đội ngũ đã hỗ trợ rất chi tiết và còn bổ sung cả tài liệu
Cảm giác là team Vite không chỉ làm công cụ, mà còn thực sự nghiêm túc với việc hướng dẫn contributor và cộng tác
Thật vui khi được thấy những cải thiện hiệu năng như thế này trong thời đại Electron
Một dự án mình duy trì đã lâu (bắt đầu từ trước cả thời React hooks) trước đây mất 2 phút để build bằng react-scripts dựa trên Webpack
Giờ với Vite 8 thì xong trong 1 giây. Đây là một ví dụ cho thấy chúng ta đã lãng phí bao nhiêu tài nguyên
Trình duyệt lẽ ra phải chạy trực tiếp được, và TypeScript cũng được thiết kế để chỉ cần bỏ phần type là chạy ngay
Bản thân sự tồn tại của mấy công cụ build này có vẻ như là đi sai hướng
Sau khi áp dụng Vite 8, thời gian build của team mình giảm từ 4 phút xuống còn 30 giây
Gần như là thay vào dùng ngay được, cảm ơn team Vite
Mình đã dùng nó từ trước khi tích hợp vào Vite và nó thực sự rất xuất sắc
Mọi người nói nó còn nhanh hơn Next, nên nếu vậy chắc quy mô phải cực lớn
Cảm ơn team Vite vì đã tạo ra một giải pháp bundling mã nguồn mở không bị trói vào một framework cụ thể
(khẽ ho một tiếng rồi nhắc đến Turbopack)
Tin rất tuyệt. Nhưng có vẻ Next.js sẽ không thể hưởng lợi từ các thành quả của cộng đồng như thế này
Vì hội chứng NIH của Vercel
Họ bắt đầu Turbopack alpha ở Next 13 rồi đến Next 16 mới biến nó thành mặc định
Năm 2022 còn từng có benchmark so sánh với Vite bị bóp méo
Các vấn đề về caching, hiệu năng chậm, lỗ hổng bảo mật RSC, app router khó hiểu, việc host ngoài Vercel bất tiện, v.v.
Chọn Next.js là một rủi ro
Link liên quan: thảo luận so sánh, lịch sử caching, phân tích hiệu năng, CVE bảo mật, OpenNext
Ngay cả trong tài liệu chính thức mà cũng nhắc đến Next như lựa chọn mặc định thì thấy khá lạ
Mình không hiểu lý do dùng React theo kiểu không phải SPA là gì
Ví dụ: Sitecore Cloud, Sanity, Contentful, v.v.
Với Vite+, Void Cloud, Void Framework và những thứ tương tự,
có vẻ cuộc đối đầu giữa Vercel và Void sắp bắt đầu
Đặc biệt demo PRC(Server Functions) khá thú vị — nó cho thấy tính an toàn kiểu dữ liệu end-to-end từ DB đến UI
Bọn mình đang nghiên cứu thiết kế RPC bằng Telefunc(một lựa chọn thay thế cho tRPC), và rất mong được hợp tác với team Void
Link liên quan: video demo PRC, Telefunc, Vike
Void Cloud có vẻ được xây trên Cloudflare Workers, và hiện chưa có nhiều thông tin
Dù vậy, việc họ công bố Vite+ dưới giấy phép MIT mã nguồn mở là cực kỳ đáng khích lệ
Nếu Bun quá tập trung vào hỗ trợ Anthropic mà lơ là OSS thì có thể sẽ mất lợi thế cạnh tranh
Tham khảo: Void Cloud
Dù hệ sinh thái JS có hỗn loạn, Vite vẫn liên tục cho thấy DX xuất sắc và chất lượng production
Với bundler Rolldown đã được tích hợp, nó sẽ trở thành một nền tảng nhanh hơn và linh hoạt hơn nữa
Với tư cách là người làm web từ năm 1998, mình thực sự là fan
Vì coi trọng khả năng bảo trì dài hạn, mình dùng trực tiếp esbuild
Mình không thích phải sửa mỗi lần wrapper như Vite bị vỡ vì thay đổi bên trong
Dùng Zod để xử lý kiểm tra type, và chỉ generate code cho type của Postgres
Nếu làm lại, có lẽ mình sẽ dùng Kysely
Hỗ trợ tích hợp sẵn tsconfig paths là một cải thiện QoL rất tốt
Nó giúp giảm trùng lặp cấu hình
Tùy dự án mà nó có thể còn đơn giản hơn
Thực ra JS vốn là ngôn ngữ ban đầu không cần quy trình build, trình duyệt phải có thể chạy trực tiếp, và TypeScript cũng được thiết kế để chỉ cần bỏ phần type là có thể chạy ngay, nên bản thân sự tồn tại của các công cụ build như thế này có vẻ là đi sai hướng -> vậy phải làm thế nào để đưa nó trở lại bình thường?
Vì từ chỗ chỉ chạy trong trình duyệt mà giờ đã chạy trực tiếp trên máy chủ, nên có lẽ đây là một bước đi tất yếu thôi.
Tôi nghĩ đây là một hiện tượng tự nhiên xuất hiện khi các ứng dụng web ngày càng trở nên tinh vi hơn.
Có lẽ chúng ta cũng phải bỏ JavaScript trên trình duyệt như đã từng vứt bỏ Flash chăng? Nhưng có vẻ vẫn chưa thấy dấu hiệu nào cho thấy JavaScript sẽ bị loại bỏ.