如何让 jest 在 ESM 下正常工作
最近在弄faucet 的重构工作,因为要全面使用新的依赖和模式,遇到了很多问题。
比如最近一周一直被 jest 无法在 ESM 模式下工作的问题卡住。
搜索引擎 + chatgpt 多方面的尝试都没有找到有效方案。
直到昨天看到 jest 官方文档里有专门的一页说这个,才搞定问题。
解决方案就是两步。
第一步是用空配置 {}
替换掉之前的 jest.config.js
中 transform
,即关闭 transform
。
第二步增加环境变量 --experimental-vm-modules
,以启用 node 的实验 API,因为 jest 使用的 node 的实验 API 实现的 ESM 支持,这也就意味着,可以卸载掉 babel-jest
插件了。
启用实验 API 这里, jest 官方文档只给了两个 CLI 下的使用例子,而我们的项目使用的是 package.json
中的 scripts
方式。
因此要想在 scripts
里启用,可以按照下面的格式:
1 | "scripts": { |