Giới thiệu về các module hiện đại trong JavaScript
Bạn đã từng làm việc với các module thông qua closure. Trong JavaScript hiện đại, đã xuất hiện các module tiện lợi hơn, cho phép đặt từng module trong một tệp riêng biệt, và sau đó khi cần thiết kết nối với các tệp khác, chỉ xuất các biến và hàm cần thiết.
Ban đầu, các module như vậy không được cố định trong tiêu chuẩn JavaScript và chỉ đơn giản được phát triển bởi cộng đồng. Theo đó, đã xuất hiện rất nhiều hệ thống module khác nhau: AMD, CommonJS, UMD và những hệ thống khác.
Sau đó, trong tiêu chuẩn JavaScript đã xuất hiện các module riêng của nó. Chúng được gọi là ES module. Vì điều này, các module do cộng đồng phát triển nhanh chóng trở nên lỗi thời và không nên sử dụng chúng.
Cần chú ý đến các module CommonJS, vì ban đầu NodeJS hoạt động dựa trên chúng, và hiện nay nó vẫn hoạt động trên chúng theo mặc định nhằm mục đích tương thích.
Ngoài ra, thường trong hướng dẫn kết nối các thư viện khác nhau, bạn sẽ gặp mô tả chính xác là phiên bản CommonJS, chứ không phải ES. Do đó, bạn phải hình dung được cách chuyển đổi mã CommonJS sang ES.
Còn một sắc thái nữa. Mặc dù các module giờ đây đã được cố định trong tiêu chuẩn JavaScript, nhưng chúng sẽ không hoạt động ngay trong trình duyệt (cho đến nay). Để làm được điều này, cần sử dụng một trong những công cụ xây dựng phổ biến.