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
相关产品推荐
相关产品推荐

