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
相关产品推荐
相关产品推荐

