我已经将这些路径添加到 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),
// ...
但我仍然有相同的行为:智能感知甚至不加载可能的自定义路径,如上面列出的路径,如下图所示:
这种文件夹结构会发生这种情况:
最佳答案
您可以创建一个新的 tsconfig 文件仅用于构建。例如:复制您当前的 tsconfig.json
至tsconfig.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/