NestJS v12: Chuyển đổi hoàn toàn sang ESM, hỗ trợ Standard Schema và hiện đại hóa bộ công cụ phát triển
NestJS vừa công bố bản dự thảo cho phiên bản v12.0.0 dự kiến ra mắt vào đầu quý 3 năm 2026, mang đến những thay đổi mang tính bước ngoặt. Các cập nhật quan trọng bao gồm việc chuyển đổi hoàn toàn từ CommonJS sang ESM, hỗ trợ native Standard Schema trong các route decorator, và hiện đại hóa bộ công cụ mặc định với Vitest, oxlint cùng Rspack.

NestJS, framework Node.js tiến bộ dùng để xây dựng các ứng dụng phía máy chủ với TypeScript, đã công bố bản dự thảo cho bản phát hành lớn v12.0.0 sắp tới, nhắm đến đầu quý 3 năm 2026. Bản phát hành này tập trung vào việc di chuyển toàn diện từ CommonJS sang ESM (ECMAScript Modules) cho tất cả các gói chính thức, hỗ trợ native Standard Schema trong các route decorator, và hiện đại hóa bộ công cụ mặc định bằng cách thay thế Jest bằng Vitest, ESLint bằng oxlint và Webpack bằng Rspack.
Chuyển đổi toàn diện sang ESM
Thay đổi quan trọng nhất trong NestJS 12 là việc chuyển đổi mọi gói chính thức từ CommonJS sang ESM. Người sáng tạo framework, Kamil Myśliwiec, nhận định rằng sự hỗ trợ require(esm) của Node.js là "mảnh ghép còn thiếu khiến việc chuyển sang ESM trở nên thực tế". Ông cho rằng nếu không có tính năng này, việc di chuyển sẽ không có nhiều ý nghĩa.
Đội ngũ phát triển dự kiến thay đổi này sẽ gây ra ít trở ngại cho các dự án hiện có, vì Node.js hiện tại cho phép mã CommonJS tải các module ESM thông qua require(). Công cụ CLI được cập nhật sẽ nhắc nhà phát triển chọn giữa việc tạo dự án CJS hay ESM, trong đó các dự án ESM sẽ mặc định sử dụng Vitest và oxlint ngay từ đầu.
Hỗ trợ Standard Schema
Cùng với sự chuyển dịch sang ESM, NestJS 12 giới thiệu hỗ trợ Standard Schema trong tất cả các route decorator như @Body, @Query và @Param. Các decorator này sẽ chấp nhận một tùy chọn schema mới tương thích với đặc tả Standard Schema, cho phép các nhà phát triển sử dụng các thư viện xác thực dữ liệu hiện đại như Zod, Valibot và ArkType làm giải pháp thay thế trực tiếp cho class-validator.
Khả năng này cũng sẽ được mở rộng cho serializer interceptor, giúp quy trình xử lý dữ liệu trở nên linh hoạt và nhất quán hơn.
Hiện đại hóa bộ công cụ (Toolchain)
Các mặc định về kiểm thử và linting cũng đã được cải tổ hoàn toàn. Tất cả các kho lưu trữ (repository) và dự án mẫu của NestJS đã di chuyển từ Jest sang Vitest, với OXC cung cấp hỗ trợ decorator TypeScript. Các dự án ESM mới sẽ sử dụng Vitest theo mặc định, trong khi các dự án CJS sẽ tiếp tục sử dụng Jest.
Đối với linting, oxlint thay thế ESLint làm mặc định cho tất cả các dự án. Điều này phù hợp với xu hướng rộng rãi hơn của các công cụ JavaScript dựa trên Rust, mang lại vòng lặp phản hồi (feedback loop) nhanh hơn cho nhà phát triển. Về phía bundler, Webpack đã bị loại bỏ thay thế bằng Rspack, hoạt động như một giải pháp thay thế trực tiếp với thời gian xây dựng (build time) nhanh hơn đáng kể.
Các cập nhật khác và phản hồi cộng đồng
Bản phát hành cũng bao gồm việc di chuyển NATS v3 cho gói microservices, hỗ trợ tắt máy graceful (graceful shutdown) cho bộ điều hợp Express, các tham số lý do ngắt kết nối WebSocket, cải thiện tính an toàn kiểu (type safety) cho pipe transform và tùy chọn errorCode tùy chỉnh cho HttpExceptionOptions.
Trên mạng xã hội X, thông báo chính thức của NestJS đã thu hút hơn 800 lượt thích và 93 lượt chia sẻ lại. Một người dùng trên Reddit nhận định:
"Đã sử dụng vitest và zod với nest. Tin tuyệt vời rằng các công cụ này sẽ được nest hỗ trợ native."
Một số thành viên cộng đồng trong thảo luận về lộ trình cũng đã yêu cầu thêm Bun và Biome làm tùy chọn CLI bổ sung cho các dự án mới.
Tại thời điểm viết bài, hướng dẫn di chuyển từ v10 sang v11 đã có sẵn trên trang tài liệu NestJS, và đội ngũ khuyến nghị sử dụng npm-check-updates để đơn giản hóa việc nâng cấp gói. Hướng dẫn di chuyển từ v11 sang v12 chuyên biệt chưa được xuất bản, nhưng các gói dự kiến sẽ được phát hành dưới thẻ npm next trước khi bản phát hành ổn định chính thức ra mắt, giúp các đội ngũ có cơ hội kiểm thử trước khi áp dụng rộng rãi.
Bài viết liên quan

Công nghệ
Giường thông minh, Nệm điều chỉnh và Khung gầm: Phân biệt rõ ràng để tránh "đốt tiền" khi mua sắm
30 tháng 4, 2026

Công nghệ
Stripe ra mắt ví điện tử Link: Kết nối tài chính và trao quyền cho các tác nhân AI tự chủ
30 tháng 4, 2026

Công nghệ
TikTok ra mắt "Campus Hub": Tính năng nhóm chat và bảng tin dành riêng cho sinh viên đại học
30 tháng 4, 2026
