跳到主要内容
版本:26.x.

ECMAScript模块

笑船实验支持ECMAScript模块(ESM)。

请注意,由于其实验性质,在Jest的实现中存在许多错误和缺少的功能,都是已知和未知的。请注意,由于其实验性质,在Jest的实现中存在许多错误和缺少的功能,都是已知和未知的。你应该看看跟踪问题标签关于最新状态的问题跟踪器。

另请注意,APIS用于实现ESM支持的APIS用于实现ESM支持被节点考虑实验(as Version14.13.1.)。

随着警告,这就是您在测试中激活ESM支持的方式。

  1. 确保您要么禁用代码转换通过传递转换: {}或者以其他方式将变压器配置为发出ESM而不是默认的commonjs(CJS)。
  2. 执行节点- 实验 - VM模块,例如,节点 - 实验 - VM-Modules Node_Modules / .bin / Jest或者node_options = - 实验 - VM模块NPX Jest等等。在Windows上,您可以使用跨env.能够设置环境变量。在Windows上,您可以使用跨env.能够设置环境变量
  3. 除此之外,我们试图遵循节点激活“ESM模式”的逻辑(例如看类型package.json.或者MJS.文件),见他们的文档yabo2013有关详细信息。

ESM和CommonJ的差异

大多数差异都解释说明节点文档,但除了提到那里的东西,Jest将一个特殊变量注入所有被执行的文件 -笑话目的。要在ESM中访问此对象,您需要将其从中导入其中@ jest / globals模块。要在ESM中访问此对象,您需要将其从中导入其中@ jest / globals模块。

进口 { 笑话 } '@ jest / globals' ;
笑话 Usefaketimers. ;
// 等等。

请注意,我们目前不支持jest.mock.在ESM中以干净的方式,但这是我们打算在将来增加适当的支持。跟随这个问题更新。跟随这个问题更新。