tsconfig.json
的paths
设置如下:
"paths": {
"@fs/*": ["src/*"],
"@test/*": ["test/*"]
}
因此,所有@fs/blah/blah
导入在VSCode中都可以很好地解析。为了使Jest使用相同的导入声明,我在moduleMapper
上添加了jest.config.ts
,这是完整的配置:
module.exports = {
roots: ["./src"],
transform: {
"^.+\\.tsx?$": "ts-jest"
},
testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
moduleNameMapper: {
"@fs/*": ["src/*"]
}
};
import { isBoolean } from "@fs/is";
之类的语句无法解决。
使用相对导入进行更改时,Jest会解析它(import { isBoolean } from "./is";
)
有想法吗?
答案 0 :(得分:1)
根据jest document,moduleNameMapper
的键是正则表达式。 (不是全局模式)
<rootDir>
可以用来引用项目的根目录。 (docs)
因此,我们可以进行如下配置:
moduleNameMapper: {
"^@fs/(.*)$": "<rootDir>/src/$1"
}