# output.esModule
类型: | boolean | "if-default-prop" |
---|---|
CLI: | --esModule/--no-esModule |
默认: | "if-default-prop" |
该选项用于决定是否在生成非 ES 格式导出时添加 __esModule: true 属性。此属性表示导出的值是 ES 模块的命名空间,并且此模块的默认导出对应于导出对象的 .default 属性。
- 值为 true,当使用 命名导出模式 时将始终添加该属性,这与其他工具类似。
- 值为"if-default-prop",仅当使用命名导出模式且存在默认导出时,才会添加该属性。微妙之处在于,如果没有默认导出,你的 CommonJS 版本的库使用者将获得所有命名导出作为默认导出,而不是出现错误或 undefined。我们选择将其设置为默认值,因为 __esModule 属性不是任何 JavaScript 运行时遵循的标准,并且会导致许多互操作问题,因此我们希望将其用于确实需要它的情况。
- 值为 false,即使默认导出会变成属性 .default,也不会添加该属性。
可以查看 output.interop 选项。