为什么Jest会运行包含不正确import语句的代码?

rta7y2nd  于 2023-03-11  发布在  Jest
关注(0)|答案(1)|浏览(159)

我遇到的这个问题是我在一个JavaScript程序中犯了一个错误;导入行不包括.js扩展名。
可以理解的是,这意味着程序无法与节点作为./import不存在(./import.js不存在).错误我反映了这个Error [ERR_MODULE_NOT_FOUND]: Cannot find module .../export' imported from ....
但是,当用jest测试时,它工作得“正确”(就像包含了文件扩展名一样)。有人知道为什么这段代码对jest来说是“正确”的,即使它试图从中导入的文件实际上并不存在吗?
我已经设置了一个非常小的repo here来复制这个问题(使用相同的配置)。希望这能提供关于我的问题的所有上下文。

vuktfyat

vuktfyat1#

当你在Jest中运行代码时,你使用的是Jest的导入系统,这比默认的JavaScript导入系统要高级得多,它可以做“猜测”扩展名之类的事情。
因此,代码很可能通过Jest正确运行。
查找jest.config.js,它列出了要尝试的扩展名吗?例如.js.jsx.ts?如果列出了,这就是您的答案。

相关问题