如何在craco配置中设置transformIgnorePatterns适配测试需求?
在Create React App 5中使用Craco配置Jest的transformIgnorePatterns的正确方式
要解决Craco配置transformIgnorePatterns无效的问题,核心是通过Craco提供的Jest配置回调修改默认配置,而非直接在jest字段下声明属性。以下是正确的配置方案:
正确的craco.config.js配置
module.exports = { jest: { configure: (jestConfig) => { // 替换或扩展原有transformIgnorePatterns规则 jestConfig.transformIgnorePatterns = [ "[/\\\\]node_modules[/\\\\](?!(swiper|ssr-window|dom7)/)", "^.+\\.module\\.(css|sass|scss)$" ]; return jestConfig; } } };
关键说明
- 配置方式是核心问题:之前直接在
jest对象下设置transformIgnorePatterns不会生效,Craco要求通过configure回调函数修改内置的Jest配置对象,才能确保自定义规则被正确合并到原有配置中。 - 正则表达式需准确:
[/\\\\]兼容Windows和Unix系统的路径分隔符;(?!(swiper|ssr-window|dom7)/)确保这三个包不会被Jest忽略转译,以此解决SyntaxError: Unexpected token 'export'错误。 - 无需在babel字段配置:
transformIgnorePatterns是Jest专属配置,控制测试时哪些文件需要转译,不属于Babel配置范畴。
验证步骤
- 保存上述配置文件
- 重新运行测试命令:
npm run test
若仍有报错,可检查正则表达式是否准确匹配目标依赖包,比如确认包名拼写无误、正则中的路径分隔符和括号是否闭合。
内容的提问来源于stack exchange,提问作者maja
相关产品推荐
相关产品推荐

