Node 23: Thay Đổi Trò Chơi trong Node.js
Node.js đã đi một chặng đường dài, và với phiên bản phát hành của Node 23, phiên bản thử nghiệm mới, trò chơi đã thay đổi. Node 23 đã loại bỏ một trong những lỗi tệ nhất mà các nhà phát triển có thể gặp phải, và nó là một thay đổi trò chơi.
Trong phiên bản mới này, sự bất bình đẳng giữa CommonJS (CJS) và ECMAScript Modules (ESM) đã được giải quyết. Trước đây, ESM có thể nhập CJS, nhưng CJS không thể nhập ESM trực tiếp. Điều này đã dẫn đến sự chuyển đổi và các giải pháp quanh co, nhưng với Node 23, vấn đề này đã trở thành quá khứ.
Trong Node 23, bạn có thể sử dụng require
và import
thay thế nhau, khiến việc làm việc với cả CJS và ESM trở nên dễ dàng hơn. Điều này có nghĩa là bạn có thể nhập mô-đun ESM trong các tệp CJS và ngược lại, không cần phải lo lắng về các vấn đề tương thích.
Sức Mạnh của Require và Import Thay Thế
Tuy nhiên, có một điều kiện. Nếu bạn sử dụng top-level await trong mô-đun ESM, bạn sẽ nhận được lỗi. Điều này là vì top-level await không tương thích với bản chất đồng bộ của CJS.
Để vượt qua giới hạn này, bạn có thể sử dụng một tùy chọn trong Node 22 để bật hỗ trợ thử nghiệm cho mô-đun ESM. Điều này cho phép bạn sử dụng hành vi mới trong Node 22, nhưng với chú thích rằng nó vẫn đang trong quá trình thử nghiệm.
Bật Hỗ Trợ Thử Nghiệm cho Mô-đun ESM
Tóm lại, Node 23 là một thay đổi trò chơi cho các nhà phát triển Node.js. Nó giải quyết sự bất bình đẳng giữa CJS và ESM, khiến việc làm việc với cả hai hệ thống mô-đun trở nên dễ dàng hơn. Tuy nhiên, nó vẫn đang trong quá trình thử nghiệm, và có các giới hạn cần được chú ý.
Tương Lai của Node.js với Node 23
Nếu bạn quan tâm đến việc học thêm về Node.js và TypeScript, hãy chắc chắn kiểm tra các nguồn tài nguyên được đề cập trong video, bao gồm bài viết của Joyee Cheung về chủ đề này và khóa học TypeScript miễn phí của Matt Pocock.