什么是"模块" package.json字段为?

时间:2017-03-10 01:20:14

标签: javascript npm package.json

我已经看到一些npm包(vue for example)在他们的package.json中有一个renew字段。 pkg.module是官方的npm属性还是某种约定?这个地方有文件吗?它的用途是什么? esnext路径?非捆绑模块路径?

2 个答案:

答案 0 :(得分:84)

  

"module"是官方的npm属性还是某种约定?

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

  

这个地方有文件吗?

事实上,可以找到它right here,然后删除here

  

它的用途是什么?

节点中的ES6模块互操作性。可以在herehere找到其他讨论。来自Rich Harris的a blog post在这里谈论更多。

答案 1 :(得分:23)

捆绑工具用于ESM(ECMAScript模块)检测。 Rollup documentation说得很好:

  

如果您的package.json文件还有module字段,那么ES6感知工具   像Rollupwebpack 2会直接import the ES6 module version

This article on Rollup 1.0以另一种方式说:

  

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

pkg.moduleRollup Github Wikirow_number()的进一步讨论。