Trường package.json "module" dùng để làm gì?


111

Tôi đã thấy một số gói npm ( vue chẳng hạn ) có một pkg.moduletrường trong package.json của chúng. Là "module"một tài sản npm chính thức hay đây là một quy ước của một số loại? Có tài liệu cho điều này ở đâu đó không? Cái này để làm gì? đường dẫn esnext? Đường dẫn mô-đun chưa được nhóm?


2
ước cho module ECMAScript - đây là một tốt đọc trên các phương pháp khác nhau để xác định ESM của: hackernoon.com/...
hackerrdave

Câu trả lời:


118

"module"một tài sản npm chính thức hay đây là một quy ước của một số loại?

Đó là một đề xuất , nhưng có khả năng được hỗ trợ do việc sử dụng trên thực tế.

Có tài liệu cho điều này ở đâu đó không?

Thực tế là có, và nó có thể được tìm thấy ngay tại đây và sau đó sẽ bị xóa ở đây .

Cái này để làm gì?

Khả năng tương tác của mô-đun ES6 trong Node. Thảo luận bổ sung có thể được tìm thấy ở đâyở đây . Và đây là một bài đăng trên blog của Rich Harris nói thêm về nó.


1
WebPack có tài liệu về điều này ở đâu đó không hay chỉ Rollup?
tech4him

1
Trông giống như họ đã thêm nó ở đây: webpack.js.org/guides/author-libraries/#final-steps
tech4him

43

Điều này được sử dụng bởi các công cụ gói để phát hiện ESM (ECMAScript Module). Các tài liệu Rollup nói nó khá tốt:

Nếu package.jsontệp của bạn cũng có một moduletrường, các công cụ nhận biết ES6 như Rollupwebpack 2 sẽ nhập trực tiếp phiên bản mô-đun ES6 .

Bài viết này trên Rollup 1.0 nói theo cách khác:

Trường mainđảm bảo rằng người dùng Node đang sử dụng requiresẽ được cung cấp phiên bản UMD. Trường modulekhông phải là một tính năng npm chính thức mà là một quy ước chung giữa các gói để chỉ định cách nhập phiên bản ESM của thư viện của chúng tôi.

Thảo luận thêm về pkg.modulecó trên Wiki Rollup Github và các tài liệu webpack .


1
mainphải là phiên bản thu nhỏ của phiên bản UMD của thư viện không? Hay nó phải là một cái chưa được xác định? Về modulethì sao? Tôi đoán rằng mô-đun đó không nên được rút gọn vì người dùng sẽ sử dụng gói của nó (Webpack, Parcel, v.v.) và bằng cách sử dụng tệp nguồn với xuất mô-đun ES6, trình gói có thể giải quyết hiện tượng rung cây, đúng không?
tonix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.