You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue 3单元测试运行报错Cannot find module '@jest/globals'如何解决?

问题根因

你遇到的Cannot find module '@jest/globals'报错是Jest相关依赖版本不兼容导致的,具体匹配规则如下:

  • 你当前使用的@vue/cli-plugin-unit-jest@~4.5.0内置的Jest版本为24.x,@jest/globals是Jest 26版本才新增的官方包,24版本本身没有这个依赖
  • 你安装的vue-jest@^5.0.0-0是适配Jest 27+的版本,运行时会主动查找高版本Jest才有的@jest/globals包,因此触发报错

解决方案

提供两种可选方案,根据你的需求选择即可:

方案1:适配现有Vue CLI 4.x环境(改动最小,无需调整其他配置)

这个方案不需要修改其他测试相关配置,直接调整vue-jest版本即可:

  1. 卸载当前版本的vue-jest
npm uninstall vue-jest
  1. 安装适配Jest 24的Vue3版本vue-jest
npm install vue-jest@^17.0.0 --save-dev

说明:vue-jest v17是官方专门适配Vue3 + Jest 24/25的版本,和你当前cli内置的Jest版本完全兼容,不需要额外安装babel-jest,@vue/cli-plugin-unit-jest已经内置了对应版本的babel-jest依赖。


方案2:升级全量Jest依赖到27+(可使用新版Jest特性)

如果想要使用更高版本Jest的特性,可以升级所有相关依赖:

  1. 执行安装命令更新所有依赖:
npm install --save-dev jest@^27.5.1 @types/jest@^27.4.1 babel-jest@^27.5.1 vue-jest@^5.0.0-alpha.10 @vue/cli-plugin-unit-jest@^5.0.8
  1. 检查你的jest.config.js配置,确认transform字段中.vue文件对应的处理器为vue-jest即可。

疑问解答
  • 是@types/jest@24.0.19导致的报错吗?
    不是,@types/jest只影响TypeScript的类型提示,不会导致运行时找不到依赖的报错,仅需要在升级Jest版本后同步升级对应版本即可。
  • 是vue-jest版本的问题吗?
    是的,版本不匹配是直接诱因,vue-jest大版本必须和Jest大版本一一对应。
  • 需要安装babel-jest吗?
    方案1不需要,Vue CLI的单元测试插件已经内置了对应版本的babel-jest;方案2需要手动安装,因为高版本Jest要求配套对应版本的babel-jest做代码转换。

内容的提问来源于stack exchange,提问作者user4094935

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:36:03