Node.js 24 Native TypeScript
Bước build gần như đã biến mất.
Node.js 24 hiện đã hỗ trợ TypeScript một cách nguyên bản. Bạn có thể chạy các tệp .ts trong môi trường production mà không cần bước build. Điều này loại bỏ sự ngăn cách giữa mã nguồn và quá trình thực thi của bạn.
Cách thức hoạt động: Runtime sẽ phân tích cú pháp TypeScript của bạn. Nó loại bỏ các chú thích kiểu (type annotations) tại thời điểm tải. Sau đó, nó thực thi mã JavaScript kết quả.
Các thông tin quan trọng về thay đổi này:
- Nó không thực hiện kiểm tra kiểu (type checking).
- Nó không tạo ra các tệp .d.ts.
- Nó coi TypeScript như là JavaScript có kèm chú thích.
- Runtime sẽ loại bỏ các chú thích trước khi thực thi.
Điều này giúp đơn giản hóa việc triển khai của bạn. Bạn không còn cần phải quản lý các thư mục đầu ra của tsc hay các cấu hình source map phức tạp để triển khai nữa. Mã nguồn của bạn sẽ trở thành nguồn sự thật duy nhất (single source of truth).
Lưu ý các hạn chế sau:
- Không kiểm tra kiểu tại thời điểm runtime. Bạn vẫn cần chạy
tsc --noEmittrong pipeline CI để phát hiện lỗi. - Không hỗ trợ ánh xạ đường dẫn (path mappings) trong tsconfig.json.
- Không hỗ trợ decorators hoặc các bộ chuyển đổi (transformers) tùy chỉnh.
- Tốn một chút chi phí hiệu năng trong quá trình khởi động lạnh (cold starts) do việc loại bỏ kiểu.
Nếu bạn sử dụng các bí danh đường dẫn (path aliases) như @/utils, bạn vẫn cần một bundler hoặc esbuild.
Cách sử dụng:
Bạn có thể chạy server trực tiếp với Node:
node src/server.ts
Để gỡ lỗi tốt hơn, hãy sử dụng flag source maps:
node --enable-source-maps src/server.ts
Đây là một lựa chọn tuyệt vời cho các microservices có đồ thị phụ thuộc (dependency graphs) đơn giản. Bạn sẽ tăng tốc độ triển khai. Tuy nhiên, nếu bạn cần tối ưu hóa sâu hoặc nén mã (minification), hãy tiếp tục sử dụng quy trình build truyền thống.
Mục tiêu là chọn công cụ phù hợp với nhu cầu cụ thể của bạn.