3

我的简化jest.config.js是:

module.exports = {
  preset: "ts-jest",
  collectCoverage: true,
  collectCoverageFrom: [
    "src/**/*.ts",
    "!**/node_modules/**",
    "!src/config/*.ts",
    "!build/**/*"
  ],
  coverageReporters: ["text"],
  reporters: ["default"],
  moduleDirectories: [
    "src",
    "node_modules"
  ],
  moduleNameMapper: {
    "@helpers/(.*)": "<rootDir>/src/helpers/$1", <---- question about this
  },
  globals: {
    'ts-jest': {
      diagnostics: {
        pathRegex: /\.(spec|test)\.ts$/,
        ignoreCodes: [6133]
      }
    }
  },
  verbose: true,
  roots: ["src"],
  moduleFileExtensions: ["ts", "tsx", "js", "jsx"]
};

moduleNameMapper 映射到任何级别的嵌套路径:

  • @helpers/foo
  • @helpers/foo/foo
  • ETC...

我在我的测试中使用它,比如import foo from "@helpers/foo/foo";

但是,我收到此错误:

找不到@helpers/foo映射为的模块: /<PATH>/src/helpers/foo

在文档中没有找到关于嵌套路径的任何内容。我假设,因为@helpers/(.*)是一个正则表达式,这应该是开箱即用的。

我究竟做错了什么?也许这是一个错误?

4

0 回答 0