我见过一些 npm 包(例如)在 package.json 中有一个 module字段。
module
但是 Json 文档中没有包含 module-这是某种约定吗? 有没有相关的文档?
Node.js 没有正式定义 module字段,也没有计划提供支持。相反,Node.js 社区选择了 包装出口,他们认为 包装出口更加通用。
出于实际原因,JavaScript 捆绑包将继续支持 module字段。Esbuild 记录何时使用 module以及相关字段 main和 browser。
main
browser
"module"是官方 npm 属性还是某种约定?
"module"
它是一个 建议书,但由于实际使用情况,可能会得到支持。
有相关文件吗?
事实上,有,它可以找到 就在这儿和后来删除 给你。
这是干什么用的?
节点中 ES6模块的互操作性。额外的讨论可以找到 给你和 给你。下面是里奇 · 哈里斯的 一篇博客文章节目。
这是用于 ESM (ECMAScript 模块)检测的捆绑工具:
如果您的 package.json文件还有一个 module字段,则使用支持 ES6的工具 像 汇总和 网络包2将 导入 ES6模块版本直接。
package.json
这篇关于概述1.0的文章从另一个角度说:
main字段确保使用 require的 Node 用户将得到 UMD 版本的服务。module字段不是官方的 npm 特性,而是捆绑包之间指定如何导入库的 ESM 版本的共同约定。
require
关于 pkg.module的进一步讨论是在 总结 Github 维基和 Webpack 文档上。
pkg.module