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

TypeScript CLI Jest测试报错:无法找到模块../src/utils

解决TypeScript CLI Jest测试模块找不到的问题

问题分析

运行jest时触发错误:

Cannot find module '../src/utils' or its corresponding type declarations.

同时VSCode也无法识别该导入路径,核心问题包含两点:导入路径书写错误,以及TypeScript配置未覆盖测试目录导致类型解析失败。

解决方案

1. 修正导入路径

你的测试文件位于tests/utils/index.ts,当前../src/utils的导入路径逻辑错误——从tests/utils目录向上一级是tests目录,而非项目根目录,正确的导入路径应为:

import { /* 你的导出内容 */ } from '../../src/utils';

2. 调整TypeScript配置(tsconfig.json)

原配置中rootDir仅指向src,且未将tests目录纳入编译范围,导致TypeScript无法解析测试文件中的跨目录导入。修改后的配置如下:

{
  "compilerOptions": {
    "target": "ES2016",
    "module": "commonjs",
    "rootDirs": ["src", "tests"], // 同时指定src和tests为根目录
    "allowJs": false,
    "checkJs": false,
    "declaration": true,
    "declarationMap": true,
    "outDir": "./dist",
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "noImplicitAny": true,
    "alwaysStrict": true,
    "skipLibCheck": true
  },
  "include": ["src/**/*", "tests/**/*"], // 包含src和tests下所有文件
  "exclude": ["node_modules", "dist"]
}

3. 配置Jest模块解析规则

在jest.config.ts中添加模块搜索路径,确保Jest能正确定位到src目录下的模块:

import type { Config } from "jest";
import { defaults } from "jest-config";

const config: Config = {
  preset: "ts-jest",
  testEnvironment: "node",
  modulePaths: ["<rootDir>/src", "<rootDir>/tests"], // 指定模块搜索根路径
  moduleFileExtensions: [...defaults.moduleFileExtensions, "ts"]
};

export default config;

4. 验证修复

  • 重启VSCode的TypeScript服务(按Ctrl+Shift+P,选择TypeScript: Restart TS Server),确认导入路径不再报错。
  • 重新运行jest,检查测试是否正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:55:17