Expo 47升级至50后Bare项目Jest module mapper配置错误
Expo 47 升级至 50 后 Bare 项目测试模块映射报错解决思路
问题概况
- 项目类型:带测试用例和module mapper的Expo Bare项目
- 操作:将Expo从47版本升级至50版本
- 测试报错:测试套件运行失败,提示无法找到映射路径
/Users/a.trofimenko/Documents/Work/ReactNativeProjects/zirtue-app/src/$1,此前测试可正常运行
可能原因
Expo 50对应React Native 0.71+,版本升级后,jest模块解析逻辑、jest-expo依赖版本或路径映射规则的兼容性出现变化,导致原有module mapper配置失效。
解决步骤
- 检查jest路径映射配置:打开
jest.config.js或package.json中的jest配置段,确认moduleMapper规则。比如原有规则若为^src/(.*)$: '<rootDir>/src/$1',需保证正则匹配正确,替换字符串中的$1引用无语法错误,避免多余的标点或路径偏差。 - 同步jest-expo版本:确保
jest-expo版本与Expo 50匹配(即jest-expo@50),执行npm install jest-expo@50 --save-dev或yarn add jest-expo@50 --dev,重新安装依赖。 - 清理缓存:执行
npx jest --clearCache清除jest缓存,必要时删除node_modules、package-lock.json/yarn.lock后重新安装依赖,排除缓存导致的解析异常。 - 调整映射规则写法:若原有规则不兼容,可尝试更明确的路径写法,比如将
^src/(.*)$的映射改为./src/$1,或根据项目根目录调整绝对路径的写法。 - 同步babel别名配置:若项目使用
babel-plugin-module-resolver配置路径别名,需确保其规则与jest的moduleMapper完全一致,避免解析冲突。
内容的提问来源于stack exchange,提问作者Extrawert
相关产品推荐
相关产品推荐

