我目前使用带有TypeScript的feathersjs。我想在源文件和测试中使用模块别名。我的源文件位于测试文件夹附近的核心文件夹中。
使用以下设置tsconfig会警告我'rootDir'应该包含所有源文件,但是我的测试正在正常进行。我可以轻松地运行它们。但是我无法摆脱vscode中的警告。我该如何在jest和我的核心文件中使用模块别名?
我有那个文件结构。
-config
-core
-middlewares
-models
...
-node_modules
-test
这是我最喜欢的配置:
"jest": {
"preset": "ts-jest",
"rootDir": ".",
"testEnvironment": "node",
"moduleFileExtensions": [
"js",
"json",
"jsx",
"ts",
"tsx",
"node",
"d.ts"
],
"transformIgnorePatterns": [
"<rootDir>/node_modules/(?!@foo)"
],
"moduleNameMapper": {
"^@/(.*)": "<rootDir>/core/$1"
},
"globals": {
"ts-jest": {
"diagnostics": true
}
}
}
这是我的tsconfig文件:
{
"compilerOptions": {
"target": "es2018",
"module": "commonjs",
"outDir": "./build",
"rootDir": "./core",
"removeComments": true,
"strict": true,
"esModuleInterop": true,
"baseUrl": ".",
"moduleResolution": "node",
"paths": {
"@/*": ["core/*"]
}
}
}