Javascript 什么是「;模块";的package.json字段?

Javascript 什么是「;模块";的package.json字段?,javascript,npm,package.json,Javascript,Npm,Package.json,我看到一些npm包()的package.json中有一个pkg.module字段。“模块”是npm的官方财产还是某种惯例?有这方面的文件吗?这是干什么用的?下一条路?非绑定模块路径 “模块”是npm的官方财产还是某种惯例 它是一个,但由于事实上的使用,可能会得到支持 有这方面的文件吗 事实上,它是存在的,可以被找到,然后被移除 这是干什么用的 节点中的ES6模块互操作性。更多的讨论可以找到和。下面是Rich Harris对它的详细介绍。捆绑工具使用它进行ESM(ECMAScript模块)检测。报

我看到一些npm包()的package.json中有一个
pkg.module
字段。
“模块”
是npm的官方财产还是某种惯例?有这方面的文件吗?这是干什么用的?下一条路?非绑定模块路径

“模块”
是npm的官方财产还是某种惯例

它是一个,但由于事实上的使用,可能会得到支持

有这方面的文件吗

事实上,它是存在的,可以被找到,然后被移除

这是干什么用的


节点中的ES6模块互操作性。更多的讨论可以找到和。下面是Rich Harris对它的详细介绍。

捆绑工具使用它进行ESM(ECMAScript模块)检测。报告说得很好:

如果您的
package.json
文件也有一个
module
字段,那么支持ES6的工具 喜欢并且会直接

另一种说法是:

main
字段确保使用
require
的节点用户将获得UMD版本。
模块
字段不是npm的官方功能,而是捆绑包商之间的一种常见约定,用于指定如何导入我们库的ESM版本


关于
pkg.module
的进一步讨论,请参见和ECMAScript模块的

约定-这里有一本关于识别ESM的不同方法的好书:WebPack是否在某个地方有关于此的文档,或者只是汇总?看起来他们在这里添加了它:这从未实现过。相反,它们的
类型
字段可以设置为
“module”
main
是否应该是库的UMD版本的缩小版本?还是应该是一个未统一的?那
模块
呢?我猜模块不应该缩小,因为用户将使用其捆绑程序(网页包、包裹等),并且通过使用ES6模块导出的源文件,捆绑程序可以防止树抖动,对吗?