我正在使用 Jest 来运行我的测试。从 v12 升级到 Node v16.13.0(LTS 版本)后,出现以下错误:
ReferenceError:未定义 AbortController
而使用 Node 手动运行代码效果很好。
在升级到 v16 的过程中,我将所有软件包升级到了最新版本。我一直在为模拟 AbortController 使用 polyfill,因为我在升级之前使用的是 Node v12。Node v16 带有它自己的 AbortController,所以我删除了这个 polyfill。我正在使用 TypeScript 4.4.4,以防相关(这不是 TypeScript 错误)。
使用 Polyfill 时不会出现此错误。
与我使用 Node.js 手动运行应用程序时相比,Jest 运行时似乎没有使用相同的环境。
我尝试了以下方法:
console.log(process.env)在测试开始时运行并检查正在使用的 Node 版本 -> 对 Node 的所有引用都具有相同的版本:16.13.0。我已经研究了几个小时了,似乎互联网上没有人遇到这个问题。有谁知道发生了什么事吗?