为 ESM 和 CommonJS 创建混合 npm 模块

HUI*_*ANG 5 commonjs typescript jestjs es6-modules

假设我正在编写一个名为my-awesome-libusing Typescript 的 npm 库。因为my-awesome-lib依赖于纯ESM库,所以我必须使用ESM语法,即import使用该第三方库。现在一切正常了,包括开玩笑,我按照本教程导出my-awesome-lib为 ESM 和 CommonJS 模块。

同时,我还在使用 CommonJS 语法编写一个依赖于我的自定义库的应用程序,即require('my-awesome-lib'),但 jest 测试套件无法运行,因为:

必须使用 import 加载 ES 模块:path/to/application/node_modules/3rd_party/index.js

这对我来说有点意义,因为第 3 方库是纯 ESM 的,你不能需要ESM 包 - 但这也让我感到困惑:我不是已经告诉 Typescript 将源代码编译成 CommonJS (以及 ESM)吗? )?

我还关注了 Dan Fabulich 关于ESM 与 CommonJS的精彩帖子,但我仍然没有答案。

有人可以帮忙吗?太感谢了。