我已经看到一些npm包(vue for example)在他们的package.json中有一个renew
字段。 pkg.module
是官方的npm属性还是某种约定?这个地方有文件吗?它的用途是什么? esnext路径?非捆绑模块路径?
答案 0 :(得分:84)
"module"
是官方的npm属性还是某种约定?
它是proposal,但由于事实上的使用可能会得到支持。
这个地方有文件吗?
事实上,可以找到它right here,然后删除here。
它的用途是什么?
节点中的ES6模块互操作性。可以在here和here找到其他讨论。来自Rich Harris的a blog post在这里谈论更多。
答案 1 :(得分:23)
捆绑工具用于ESM(ECMAScript模块)检测。 Rollup documentation说得很好:
如果您的
package.json
文件还有module
字段,那么ES6感知工具 像Rollup和webpack 2会直接import the ES6 module version。
This article on Rollup 1.0以另一种方式说:
main
字段可确保使用require
的节点用户将获得UMD版本。module
字段不是官方的npm功能,而是捆绑商之间的通用约定,用于指定如何导入我们库的ESM版本。
pkg.module
和Rollup Github Wiki对row_number()
的进一步讨论。