Jest 测试框架运行时报错之 Cannot find module 'core-js' 解决方法

在使用 Jest 测试框架时,有时可能会遇到类似以下错误:

------ ---- ------ ---------

该错误发生的原因是 Jest 的默认配置中并没有包含对 core-js 模块的引用,而大多数项目中都使用了 core-js 来提供 ES6 或 ES7 中缺失的 API 支持。

那么,我们该如何解决这个问题呢?下面是几种可能的解决方法:

方法一:手动安装 core-js

在项目根目录下执行以下命令:

--- ------- ------ -------

然后,我们可以在测试文件的开头添加以下代码:

------ -----------------
------ ------------------------------

这样就可以正确地引入 core-js 了。

方法二:修改 Jest 配置文件

Jest 默认的配置文件名为 jest.config.js,如果你的项目中没有这个文件,可以手动创建一个。

然后,在该文件中添加以下配置:

-------------- - -
  ----------- ------------------ -------------------------------
--

这样就可以让 Jest 在运行测试之前自动引入 core-js 了。

方法三:配置 Babel

我们可以使用 Babel 来自动引入 core-js

首先,我们需要安装 @babel/preset-env

--- ------- ---------- -----------------

然后,在项目根目录下创建 .babelrc 文件,并添加以下配置:

-
  ---------- -
    -
      --------------------
      -
        -------------- --------
        --------- -
      -
    -
  -
-

其中,useBuiltIns 的取值为 usage,表示只在必要时引入 polyfill,corejs 的取值为 3,表示使用 core-js@3

最后,在测试文件的开头添加以下代码:

------ ----------

这样就可以自动引入 core-js 了。

总结

以上就是几种解决 Jest 运行时报错的方法,我们可以根据实际情况选择其中一种,并进行相应的配置。

如果你对 Jest 还不熟悉,建议先学习一下 Jest 的基本用法和常用配置。

示例代码:

------ -----------------
------ ------------------------------

---------------- -- -- -
  ---------- -- -- -
    -------- - -----------
  ---
---

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/664e9a42d3423812e4efb7e8