我正在使用 TypeScript、ESM、npm 和 ts-jest。不幸的是,似乎transformIgnorePatterns 不起作用。
我尝试了多种配置,但没有任何配置可以帮助我成功地使用 ts-jest 运行 Jest。唯一有效的解决方法是直接在 node_modules 中用 require 替换导入,但这不是一个可行的最终解决方案。
我的package.json有“type”:“module”。我正在使用 npm 工作区,我在根目录中的设置与我的子包中的设置非常相似:
jest.config.ts
export default {
preset: 'ts-jest/presets/default-esm',
testEnvironment: 'node',
testMatch: ['**/*.spec.ts'],
transform: {
'^.+\\.tsx?$': ['ts-jest']
},
transformIgnorePatterns: ['/node_modules/(?!log-symbols|picocolors)']
};
ts.config.json
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "node",
"declaration": true,
"strict": true,
"incremental": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"composite": true,
"types": ["node", "jest"],
"allowImportingTsExtensions": true,
"allowJs": true,
"noEmit": true,
},
"ts-node": {
"esm": true
},
"exclude": ["node_modules"]
}
我已经尝试了带有transformIgnorePatterns、目标和模块值的各种配置。此问题不仅出现在 picocolors 中,也出现在粉笔(版本 5 和 4)中。