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

Vite+React+TypeScript项目Jest路径导入报错求助

解决Vite+React+TypeScript项目中Jest无法识别@路径别名的问题

你遇到的Cannot find module '@/components/items/card.tsx'错误,核心原因是Jest没有配置Vite项目中使用的@路径别名——Vite和TypeScript通过tsconfig.json的paths规则识别@指向src目录,但Jest需要单独配置这个映射逻辑。

解决步骤:

  1. 确认TypeScript的路径别名配置
    先检查项目根目录的tsconfig.json,确保已正确配置@别名:

    {
      "compilerOptions": {
        "baseUrl": ".",
        "paths": {
          "@/*": ["src/*"]
        }
        // 其他编译配置...
      }
    }
    
  2. 修改Jest配置文件添加别名映射
    在jest.config.ts的moduleNameMapper中新增@的映射规则,让Jest把@/xxx解析为项目根目录下的src/xxx:

    export default {
        rootDir: ".",
        roots: ["./src"],
        testEnvironment: "jsdom",
        transform: {
          "^.+\\.tsx?$": "ts-jest",
        },
        moduleNameMapper: {
          "^@/(.*)$": "<rootDir>/src/$1", // 新增该行映射规则
          "\\.(gif|ttf|eot|svg|png|jpg)$": "<rootDir>/test/__mocks__/fileMock.js",
          "\\.(css|less|sass|scss)$": "identity-obj-proxy",
        }
    };
    
  3. 验证配置生效
    重新运行测试命令,Jest即可正确识别@开头的导入路径。

额外说明:

  • 你测试文件中导入App的相对路径../App是正确的,无需修改。
  • 确保ts-jest版本与项目TypeScript版本兼容,避免版本不匹配引发的解析异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 09:15:28