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

Jest自定义测试环境无法导入绝对路径模块问题求助

解决方案

问题根因

Jest 自定义测试环境的加载逻辑独立于普通测试文件的模块解析流程,默认不会复用你为业务代码配置的路径别名/绝对导入规则,所以src/开头的导入路径无法被正确识别。

具体修复步骤

  • 步骤1:在Jest配置中补充全局路径映射
    在你的jest.config.js(或jest.config.ts)中添加moduleNameMapper和moduleDirectories配置,让Jest可以全局识别src/开头的绝对导入:
    module.exports = {
      // 其余原有配置保持不变
      moduleDirectories: ['node_modules', '<rootDir>'],
      moduleNameMapper: {
        '^src/(.*)$': '<rootDir>/src/$1'
      },
    }
    
  • 步骤2:如果你的自定义测试环境是TS编写的,补充路径别名解析能力
    因为Jest加载自定义测试环境时默认不会主动处理TS配置中的paths规则,你可以选择下面任意一种方案处理:
    • 方案A:在自定义测试环境文件的最顶部添加路径注册逻辑
      先安装依赖yarn add -D tsconfig-paths,然后在自定义测试环境TS文件的第一行加入:
      require('tsconfig-paths').register()
      
    • 方案B:提前编译自定义测试环境为JS文件,编译时通过tsc-alias等工具将路径别名替换为实际相对路径,再在Jest配置中指定编译后的JS文件作为测试环境。
  • 步骤3:验证修复
    重新运行yarn int,此时模块找不到的报错就会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:48:03