You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jest的transformIgnorePatterns配置无法转译指定node_modules包原因是什么?

问题原因分析
  • Jest的transformIgnorePatterns配置项规则是:数组中的正则表达式只要有任意一条匹配到文件路径,该文件就会被忽略转译
  • 你当前拆分写了两条独立的正则规则,会出现如下冲突:
    • 匹配foo模块时,会命中第二条规则node_modules/(?!(bar)/):该规则的含义是「忽略node_modules下所有不是bar的模块」,foo不符合排除条件,因此被判定为需要忽略
    • 匹配bar模块时,会命中第一条规则node_modules/(?!(foo)/):该规则的含义是「忽略node_modules下所有不是foo的模块」,bar不符合排除条件,因此被判定为需要忽略
  • 最终导致foo、bar两个模块都被规则命中,跳过转译
修复方案

把两个需要排除的模块合并到同一条正则规则中即可,修改后的配置如下:

{
  "transformIgnorePatterns": [
    "node_modules/(?!(foo|bar)/)"
  ]
}

这条规则的含义是:仅忽略node_modules下既不是foo也不是bar的模块,符合你的预期需求。

内容的提问来源于stack exchange,提问作者Andrew Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:54:02