package.json 的
exports
属性(webpack docs、npm docs)是相对较新的功能,它允许为包定义多个入口点。
例如,我们可以为 require 语法与 import 语法提供不同的入口点,或者我们可以允许像
the-package/foo
和 the-package/bar
这样的导入。
问题是 - 鉴于我的包具有
exports
属性 - 是否需要具有 main
属性?也许是为了向后兼容旧工具?
是的,工具的向后兼容性,例如eslint,是包含“导出”和“主”规则的主要原因。
如果包含这两个规则,则根据 OP 链接到的 npm 文档,“导出”规则优先于支持它的工具,因此如果可以保持向后兼容性,则没有理由不包含这两个规则。