Skip to content

Latest commit

 

History

History
16 lines (13 loc) · 1.38 KB

File metadata and controls

16 lines (13 loc) · 1.38 KB
"main": Trỏ đến file UMD cho môi trường CommonJS.
"module": Trỏ đến file ESM cho các công cụ hỗ trợ ESM.
"exports"."import": Dùng file ESM khi import trong Next.js.
"exports"."require": Dùng file UMD khi require trong CommonJS.

### Cảnh báo này xuất hiện vì cách bạn cấu hình thứ tự các điều kiện trong "exports". Cụ thể:

"import": "./dist/index.es.js": Được sử dụng khi module được import bằng cú pháp ESM (import).
"require": "./dist/index.umd.js": Được sử dụng khi module được yêu cầu trong CommonJS (require).
"types": "./dist/index.d.ts": Định nghĩa file khai báo TypeScript (.d.ts), nhưng vì nó nằm sau "import" và "require", nó không bao giờ được sử dụng.

### Tại sao lại có vấn đề?
Các công cụ như TypeScript, bundler (Webpack, Vite, v.v.) hoặc Node.js khi resolve module sẽ ưu tiên các điều kiện xuất hiện sớm hơn trong object "exports".
Trong trường hợp này, khi xử lý một câu lệnh import hoặc require, công cụ sẽ chọn file JavaScript tương ứng (index.es.js hoặc index.umd.js) và bỏ qua "types" vì nó xuất hiện sau cùng.
Kết quả là file khai báo TypeScript (index.d.ts) không được nhận diện, dẫn đến cảnh báo và có thể gây lỗi khi sử dụng module trong các dự án TypeScript.