13 điểm bởi GN⁺ 2026-03-14 | 5 bình luận | Chia sẻ qua WhatsApp
  • 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)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)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 ASTchuyể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 esbuildrollupOptions 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 GuideChangelog 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

 
GN⁺ 2026-03-14
Ý 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

    • So với lượng tài nguyên bị lãng phí vì JS bundle chậm, chi phí bị đốt vào runtime và các lớp trừu tượng kém hiệu quả còn lớn hơn nhiều
      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
    • Mình cũng nghĩ vậy. Sau khi biết đến Oxc, ngay cả những công cụ như ESLint hay Prettier cũng bắt đầu thấy giống một kiểu lãng phí tương tự
    • Có lẽ rồi sẽ đến ngày chúng ta nhìn lại cả sự lãng phí trong phép nhân ma trận theo cách này
    • Hiệu năng build là mối quan tâm của mình từ lâu
      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?init hoạt động cả trong môi trường SSR
    Quá 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

    • Nghe những câu chuyện hậu trường như thế này lại càng thú vị hơn
      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

    • Có vẻ giờ một cơn ác mộng mới đã bắt đầu: cố gắng gắn những giao diện để máy có thể dùng được lên trên các mô hình AI
    • Trớ trêu là ngay cả trang chủ Vite cũng bị khựng trên A55 hay S23FE
    • Thực ra JS vốn là ngôn ngữ không cần quy trình build
      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

    • Bên mình cũng từ 10 giây xuống còn 1 giây. Điểm mấu chốt là nhờ Rolldown
      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
    • 4 phút à, tò mò không biết app lớn đến mức nào
      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
    • Một dự án của bọn mình giảm từ 12 phút xuống còn 2 phút. Thay đổi thực sự đáng kinh ngạc
  • 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
    hội chứng NIH của Vercel

    • Vercel lúc nào cũng theo kiểu vận hành preview chưa hoàn thiện trong nhiều năm
      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
    • Sau vài năm mình mới quay lại React, và thật khó hiểu vì sao Next lại tồn tại
      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ì
    • Next.js được đẩy như SDK chính thức vì tích hợp với nhiều đối tác SaaS doanh nghiệp
      Ví dụ: Sitecore Cloud, Sanity, Contentful, v.v.
    • Nhân tiện thì còn có Cloudflare Vinext nữa (mình chưa trực tiếp dùng)
  • 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

    • Điều thú vị là có tin đồn Vercel gián tiếp là nhà đầu tư của Void
      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

    • Mình cũng từng dùng theo kiểu đó với esbuild + một lớp RPC đơn giản
      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
    • esbuild là công cụ JS duy nhất mà sau vài năm vẫn không bị vỡ
    • Nhưng hiện tại vẫn còn thiếu code splitting
    • Nó cũng chưa hỗ trợ top-level await, và live reloading thì chậm hơn HMR rất nhiều
  • 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

    • Đây là tin tốt, nhưng cũng đáng thử Node.js import alias
      Tùy dự án mà nó có thể còn đơn giản hơn
 
aer0700 2026-03-14

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?

 
carnoxen 2026-03-17

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.

 
ahiou 2026-03-15

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.

 
savvykang 2026-03-14

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ỏ.