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

CircleCI运行Jest时React应用报错:无法找到'./Store'模块

解决CircleCI中Jest无法找到./Store模块的问题

从你的报错信息和配置来看,这个问题主要是环境差异(大小写敏感)或者Jest配置与create-react-app不兼容导致的——本地能正常运行但CI失败,下面是几个针对性的解决方案:

1. 检查文件名大小写(最可能的根因)

CircleCI运行在Linux容器环境下,对文件名严格区分大小写,而macOS/Windows默认是不区分的。这就会出现本地能找到文件,但CI里找不到的情况:

  • 确认你的Store文件实际文件名是Store.js(大写开头的S),和导入语句import { actions } from './Store'完全匹配;
  • 如果实际文件名是小写的store.js,请把导入语句改成import { actions } from './store'。

2. 改用create-react-app官方的test命令

你的项目是基于create-react-app创建的(从scripts里的react-scripts start/build可以看出),但当前你直接调用jest命令执行测试,而不是官方提供的react-scripts test。create-react-app已经为Jest预配置了所有必要的模块解析规则,改用官方命令可以避免大部分配置问题:
修改package.json中的scripts部分:

"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
},

3. 优化Jest的moduleFileExtensions配置

如果你坚持要使用单独的jest命令,建议调整moduleFileExtensions的顺序,把常用的js/jsx放在最前面,移除可能干扰的test.js项,确保Jest优先匹配常规的JS文件:

"moduleFileExtensions": [
    "js", "jsx", "json", "ts", "tsx", "node", "css"
]

4. 临时方案:明确添加文件扩展名

作为快速修复,你可以在导入语句中明确加上.js扩展名,让Jest直接定位到目标文件:

import { actions } from './Store.js';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:52:40