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

TypeScript React项目Jest测试import语句报错无法运行如何解决

解决步骤

1. 修正jest.config.js配置

你当前配置的transformIgnorePatterns完全反向,错误忽略了src下几乎所有文件的转译,这是核心错误。修改后配置如下:

/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
module.exports = {
  preset: 'ts-jest',
  // 新增测试环境为jsdom适配React浏览器场景
  testEnvironment: 'jsdom',
  transform: {
    '^.+\\.(ts|tsx)?$': 'ts-jest',
    "^.+\\.(js|jsx)$": "babel-jest",
  },
  // 修改为仅忽略node_modules下的文件转译
  transformIgnorePatterns: ["node_modules/"],
  globals: {
    'ts-jest': {
      diagnostics: false,
      // 覆盖tsconfig配置,将ES模块转为CommonJS适配Jest环境
      tsconfig: {
        compilerOptions: {
          module: "CommonJS"
        }
      }
    }
  },
  moduleNameMapper: {
    "\\.(jpg|ico|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|css|less)$": "<rootDir>/src/test/resourceFileMock.ts",
  }
};

2. 补全babel.config.js配置

需要新增React预设,同时指定@babel/preset-env的目标环境为当前Node版本:

module.exports = {
    presets: [
        ['@babel/preset-env', { targets: { node: 'current' } }],
        '@babel/preset-react',
        '@babel/preset-typescript'
    ]
}

3. 安装缺失依赖

如果运行时提示缺少依赖,执行以下安装命令:

npm i @babel/preset-react @babel/preset-typescript jest-environment-jsdom -D

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:57:03