rbu*_*era 3 node.js sendgrid typescript jestjs ts-jest
如何让moduleNameMapper忽略在我的目录中声明的导入node_modules?
我有一个moduleNameMapper条目可以查找src/(.*)并将其翻译为<rootDir>/src/$1.
然而,我的依赖项之一(@sendgrid/mail)碰巧使用了以 开头的导入./src/,并且在将它们导入 Jest 时它们会中断。
笑话配置:
module.exports = {
"testEnvironment": "node",
"collectCoverage": true,
"moduleFileExtensions": ["js", "json", "ts"],
"roots": ["src"],
"testRegex": ".spec.ts$",
"coverageDirectory": "../coverage",
"moduleDirectories": ["node_modules", "src"],
"clearMocks": true,
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"moduleNameMapper": {
"src/(.*)": "<rootDir>/src/$1"
},
"collectCoverageFrom": [
"**/*.{js,jsx,ts,tsx}",
"!**/*.entity.ts",
"!**/*.dto.ts",
"!**/*.module.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
事实证明,src/*您可以使用以下选项,而不是使用 moduleNameMapper 来获得绝对导入moduleDirectories:
// jest.config.js
const path = require("path")
module.exports = {
"testEnvironment": "node",
"collectCoverage": true,
"moduleFileExtensions": ["js", "json", "ts"],
"roots": ["src"],
"testRegex": ".spec.ts$",
"coverageDirectory": "../coverage",
"moduleDirectories": ["node_modules", "src", __dirname], // <--- HERE!!!!
"clearMocks": true,
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverageFrom": [
"**/*.{js,jsx,ts,tsx}",
"!**/*.entity.ts",
"!**/*.dto.ts",
"!**/*.module.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2237 次 |
| 最近记录: |