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

如何在Jest-e2e配置中同时添加libs路径映射与axios模块映射?

解决Jest中同时配置TS路径映射与Axios模块映射的问题

问题根源

你遇到的路径解析错误,是因为pathsToModuleNameMapper的prefix参数里多了多余的双引号,导致生成的映射路径格式异常,无法正确匹配@app/*类的导入路径。

正确配置方案

要同时实现TSConfig中定义的libs路径映射和额外的Axios映射,需要两步操作:

  1. 修正prefix参数的引号问题
  2. 通过对象合并将两个映射规则整合

以下是修改后的完整jest-e2e.js配置:

const { pathsToModuleNameMapper } = require('ts-jest');
const { compilerOptions } = require('../../../tsconfig.json');

// 生成TSConfig路径对应的映射规则
const tsPathsMapper = pathsToModuleNameMapper(compilerOptions.paths, { 
  prefix: '<rootDir>/../../../' // 移除多余的双引号
});

module.exports = {
  moduleFileExtensions: ["js", "json", "ts"],
  verbose: true,
  rootDir: '.',
  preset: "ts-jest",
  testEnvironment: "node",
  testRegex: ".e2e-spec.ts$",
  transform: {
    "^.+\\.(t|j)s$": "ts-jest"
  },
  // 合并TS路径映射与Axios自定义映射
  moduleNameMapper: {
    ...tsPathsMapper,
    '^axios$': require.resolve('axios')
  },
};

关键说明

  • 修正prefix参数:原配置中prefix: '"<rootDir>/../../../'的双引号会被解析到最终路径中,导致Jest无法识别正确的文件位置,移除后路径格式恢复正常。
  • 合并映射规则:使用ES6对象展开运算符...将tsPathsMapper(来自TSConfig的路径映射)和Axios的自定义映射合并,确保两种规则同时生效。

这样配置后,Jest既能正确解析@app/logger这类TSConfig中定义的路径,也能按照指定规则处理Axios的模块导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:35:46