Skip to content

目前的导出模式无法实现自动切换 CommonJS 和 ESModule 导入 #513

Closed
@hungtcs

Description

@hungtcs

当前 package.json 中声明的导出方式,无法显示自动根据环境切换 CommonJS 和 ESModule 导入,
我发现有一些依赖此包的代码,直接使用如 import warn from 'rc-util/lib/warning'; 的方式导入,这会导致导入的代码永远是 CommonJS 格式的。

如下面的代码:
https://github.com/ant-design/ant-design-icons/blob/77062f82563607540029c31be00f22bf2359a72e/packages/icons-react/src/utils.ts#L3-L5

正确的导出方式应该是使用 exports 导出,并在使用时使用 rc-util/warning 来导入。

"exports": {
  ".": {
    "import": "./es/index.js",
    "require": "./lib/index.js",
    "types": "./es/index.d.ts"
  },
  "./*": {
    "import": "./es/*.js",
    "require": "./lib/*.js",
    "types": "./es/*.d.ts"
  },
  "./Children/*": {
    "import": "./es/Children/*.js",
    "require": "./lib/Children/*.js",
    "types": "./es/Children/*.d.ts"
  },
  "./debug/*": {
    "import": "./es/debug/*.js",
    "require": "./lib/debug/*.js",
    "types": "./es/debug/*.d.ts"
  },
  "./Dom/*": {
    "import": "./es/Dom/*.js",
    "require": "./lib/Dom/*.js",
    "types": "./es/Dom/*.d.ts"
  },
  "./hooks/*": {
    "import": "./es/hooks/*.js",
    "require": "./lib/hooks/*.js",
    "types": "./es/hooks/*.d.ts"
  },
  "./React/*": {
    "import": "./es/React/*.js",
    "require": "./lib/React/*.js",
    "types": "./es/React/*.d.ts"
  },
  "./utils/*": {
    "import": "./es/utils/*.js",
    "require": "./lib/utils/*.js",
    "types": "./es/utils/*.d.ts"
  }
},

其他

这是一项破坏性的修改,会导致其他错误导入此包的代码无法使用。

相关 Issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions