npm 包 jest-pnp-resolver 使用教程

前言

在前端开发中,测试是必不可少的一环。而 Jest 是一个非常流行的 JavaScript 测试框架,它可以帮助我们对代码进行单元测试、快照测试等多种测试。

但是,在使用 Jest 进行测试时,我们可能会遇到一个问题:当我们使用 Yarn 2 或 PnP(Plug 'n' Play)时,Jest 默认无法解析依赖。这是因为 Jest 需要使用特殊的解析器来解析依赖。

而 jest-pnp-resolver 就是一个能够解决这个问题的 npm 包。本文将详细介绍如何使用 jest-pnp-resolver。

安装

首先,我们需要安装 jest-pnp-resolver。可以使用 npm 或 Yarn 来进行安装:

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

安装完成后,我们需要修改 Jest 的配置文件,以便让 Jest 使用 jest-pnp-resolver。

配置

假设我们的 Jest 配置文件是 jest.config.js,我们需要在该文件中添加以下内容:

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

这样,Jest 在解析依赖时就会使用 jest-pnp-resolver。

示例

下面是一个简单的示例,演示了如何在 Jest 中使用 jest-pnp-resolver。

假设我们有如下一个 JavaScript 文件:

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

我们可以编写一个简单的测试文件来测试 add 函数:

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

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

如果我们使用 Yarn 2 或 PnP,直接运行 Jest,可能会得到以下错误信息:

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

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

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

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

这是因为 Jest 默认无法解析依赖,导致无法找到 ../src/math 这个模块。

但是,如果我们在 Jest 的配置文件中使用了 jest-pnp-resolver,就能够成功运行测试。修改 jest.config.js 文件如下:

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

然后再次运行 Jest,就可以看到测试已经通过了:

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

总结

本文介绍了如何使用 jest-pnp-resolver 解决 Jest 在使用 Yarn 2 或 PnP 时无法解析依赖的问题。我们通过安装 jest-pnp-resolver,并在 Jest 配置文件中指定 resolver,成功地解决了这个问题。

希望本文能够对大家有所帮助!

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/48560


猜你喜欢

  • 前后端分离模式下搭建微信公众号网页项目

    在前后端分离的开发模式下,我们可以将前端视图与后端业务逻辑分开。这种模式在微信公众号网页开发中也被广泛应用。本文将介绍如何使用Vue.js和Node.js搭建一个基于微信公众平台的前后端分离项目。

    6 年前
  • npm 包 buffer-graph 使用教程

    简介 buffer-graph 是一个基于 Node.js 的 npm 包,用于将 Buffer 类型的数据转换为可视化的图形。该工具可以方便地对二进制数据进行可视化分析和展示。

    6 年前
  • npm 包 explain-error 使用教程

    在开发前端项目时,我们难免会遇到各种错误。有时候错误信息并不足够明确,这就需要使用一些工具来帮助我们更好地理解错误信息。其中一个非常有用的工具是 npm 包 explain-error。

    6 年前
  • npm 包 documentify 使用教程

    简介 documentify 是一个基于 Browserify 的 npm 包,它可以将 Markdown 文件转换为可在浏览器中查看的 HTML。同时还支持使用 Browserify 的模块系统来组...

    6 年前
  • npm 包 extract-html-tag 使用教程

    简介 extract-html-tag 是一个可用于 Node.js 或浏览器端的小型 JavaScript 库,能够从 HTML 文本中提取指定标签的内容。该库支持以 TypeScript 编写,并...

    6 年前
  • npm 包 extract-html-id 使用教程

    在前端开发中,我们经常需要从 HTML 标签中提取出特定的 ID 值。这时候,使用 extract-html-id 这个 npm 包就可以非常方便地实现。本文将为你介绍如何使用 extract-htm...

    6 年前
  • npm 包 extract-html-class 使用教程

    在前端开发中,我们经常需要从 HTML 中提取出其中的类名(class)。虽然可以手动编写代码实现这一功能,但使用专门的 npm 包会更加方便快捷。本篇文章将介绍一个名为 extract-html-c...

    6 年前
  • npm 包 inline-critical-css 使用教程

    在现代的 Web 应用程序中,性能变得越来越重要。其中一个极其重要的方面是页面加载速度。为了让我们的网站更快,我们可以使用一些技术来减少首次加载时间,其中之一就是使用关键 CSS(Critical C...

    6 年前
  • npm 包 http-gzip-maybe 使用教程

    在 Web 开发中,压缩 HTTP 响应是提高性能的一种常见方式。但是,并不是所有的客户端都支持 gzip 或 deflate 压缩算法。http-gzip-maybe 是一个 npm 包,它可以自动...

    6 年前
  • npm 包 utf8-stream 使用教程

    什么是 utf8-stream utf8-stream 是一个可以流式读取和写入 UTF-8 编码的数据的 Node.js 模块。它提供了简单易用的 API,能够让你轻松地处理大量数据,并且避免内存不...

    6 年前
  • npm包hyperstream使用教程

    介绍 Hyperstream是一个流式HTML处理工具,可用于在Node.js环境中对HTML进行操作。它提供了一组简单而强大的API,可以帮助你轻松地对HTML进行各种处理和转换。

    6 年前
  • npm 包 css-what 使用教程

    简介 css-what 是一个 npm 包,它提供了一种简洁的语法用于解析 CSS 选择器字符串。通过使用 css-what,我们可以将选择器字符串转换为 JavaScript 对象表示的形式,这使得...

    6 年前
  • npm 包 hstream 使用教程

    简介 hstream 是一款基于 Node.js 的流数据处理库,它提供了一种高效的处理数据流的方法。它可以帮助我们更轻松地对数据进行过滤、转换和其他各种操作,同时还能减少内存使用和提高代码可读性。

    6 年前
  • npm 包 webgl-compile-shader 使用教程

    在前端开发中,WebGL 是一种强大的图形渲染技术,可以实现各种复杂的 3D 特效和动画。而 webgl-compile-shader 是一个便利的 npm 包,可以帮助你更轻松地编译和管理 WebG...

    6 年前
  • npm 包 glsl-random 使用教程

    概述 glsl-random 是一个基于 WebGL 的 npm 包,它提供了一种生成随机数的方法来在 GPU 上进行并行计算。它可以用于创建各种有趣的视觉效果和图形动画。

    6 年前
  • npm 包 glslify-deps 使用教程

    简介 glslify-deps 是一个用于处理 GLSL 代码依赖的 npm 包。在 WebGL 开发中,通常会使用 GLSL 语言编写着色器代码。当着色器代码变得复杂时,可能需要将其拆分为多个文件。

    6 年前
  • npm 包 glsl-token-defines 使用教程

    glsl-token-defines 是一个用于处理 GLSL 代码中宏定义的 npm 包。本文将介绍如何使用 glsl-token-defines 在前端项目中处理 GLSL 代码中的宏定义。

    6 年前
  • npm 包 glsl-token-inject-block 使用教程

    简介 glsl-token-inject-block 是一个用于在 GLSL Shader 代码中插入代码块的 npm 包。它可以让开发者更方便地在 GLSL Shader 中引入外部代码,同时保持一...

    6 年前
  • npm 包 glsl-inject-defines 使用教程

    简介 在前端开发中,我们经常会使用 WebGL 来进行图形渲染。而 GLSL(OpenGL Shading Language)是 WebGL 中的着色器语言,它允许我们编写自定义的图形渲染效果。

    6 年前
  • NPM 包——murmurhash-js 使用教程

    简介 murmurhash-js 是一个高性能的 JavaScript 实现 murmur3 哈希函数算法的 NPM 包。它可以用于生成一个字符串的哈希值,常用于数据结构以及一些比较复杂的计算中。

    6 年前

相关推荐

    暂无文章