typescript - TS-Jest 无法解析 tsconfig 路径

标签 typescript jestjs tsconfig ts-jest tsconfig-paths

我已经将这些路径添加到 tsconfig.json:

{
    "compilerOptions": {
        "lib": ["ESNext"],
        "moduleResolution": "node",
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "removeComments": true,
        "sourceMap": true,
        "target": "ES2020",
        "outDir": "lib",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "baseUrl": ".",
        "paths": {
            "@lambdas/*": ["src/lambdas/*"],
            "@services/*": ["src/services/*"],
            "@types/*": ["src/@types/*"],
            "@configs/*": ["src/configs/*"],
            "@database/*": ["src/database/*"],
            "@entities/*": ["src/entities/*"],
            "@validations/*": ["src/validations/*"],
            "#serverless/*": ["serverless/*"]
        }
    },
    "include": ["src/**/*.ts", "serverless.ts"],
    "exclude": [
        "node_modules/**/*",
        ".serverless/**/*",
        ".webpack/**/*",
        "_warmup/**/*",
        ".vscode/**/*"
    ]
}

jest.config.js 中我添加了以下内容:

const { pathsToModuleNameMapper } = require('ts-jest/utils');
// eslint-disable-next-line import/extensions
const { compilerOptions } = require('./tsconfig.json');

// module.exports = { ...
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths),
// ...

但我仍然有相同的行为:智能感知甚至不加载可能的自定义路径,如上面列出的路径,如下图所示: test file

这种文件夹结构会发生这种情况:

folder struct

最佳答案

您可以创建一个新的 tsconfig 文件仅用于构建。例如:复制您当前的 tsconfig.jsontsconfig.build.json

请记住更新 serverless.ts 中的 esbuild 选项

...
custom: {
    esbuild: {
        tsconfig: 'tsconfig.build.ts'
    }
}
...

然后创建一个新的tsconfig.json对于 IDE(vscode) 和测试:

{
  "extends": "./tsconfig.paths.json", // extend setting from build config
 
  "include": [
    "src/**/*.ts",
    "tests/**/*.ts" // include tests directory
  ],
  "exclude": [
    "node_modules/**/*",
    ".serverless/**/*",
    ".webpack/**/*",
    "_warmup/**/*",
    ".vscode/**/*"
  ]
}

关于typescript - TS-Jest 无法解析 tsconfig 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71976790/

相关文章:

Angular 2 : No component factory found for function HomeComponent

reactjs - React 和 Jest - 使用 PropTypes.instanceOf 测试组件

typescript - TS2307 (TS) 找不到模块 'csstype'

typescript - 为 VSCODE 中的默认 typescript 库禁用智能感知

javascript - TSconfig:为每个ts文件夹编译一个新的js文件夹

typescript - 如何检查一个对象是否至少有一条记录?

javascript - 从 Angular 4 升级到 7 会导致一些问题

javascript - 在 javascript/typescript 中将 Element 转换为 HTMLElement

javascript - 使用 Jest 监视默认导出函数

unit-testing - 如何模拟对 logger.warn 的调用?