为 ESM 和 CommonJS 创建混合 npm 模块

问题描述 投票:0回答:1

假设我正在使用 Typescript 编写一个名为

my-awesome-lib
的 npm 库。因为
my-awesome-lib
依赖于纯 ESM 库,所以我必须使用 ESM 语法,即
import
来使用该第三方库。现在一切正常了,包括玩笑,我按照这个 tutorial
my-awesome-lib
导出为 ESM 和 CommonJS 模块。

同时,我也在使用 CommonJS 语法编写一个依赖于我的自定义库的应用程序,即

require('my-awesome-lib')
,但是 jest 测试套件无法运行,因为:

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

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

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

有人可以帮忙吗?谢谢一百万。

typescript jestjs es6-modules commonjs
1个回答
0
投票

我对这个问题也有一些困惑,正在努力解决。

© www.soinside.com 2019 - 2024. All rights reserved.