【问题标题】:What is the point of Jest's createTransformer method in its *Transformer interface?Jest 的 *Transformer 接口中的 createTransformer 方法有什么意义?
【发布时间】:2022-02-18 13:59:51
【问题描述】:

最后一天我一直在 Jest 中研究/调试与 code transformation 相关的问题,并且反复出现的主题是 SyncTransformer#createTransformer 方法总是令人惊讶,并且没有真正记录它存在的原因。

SyncTransformer 接口只有一个必须实现的字段:process。但似乎如果实现createTransformer,其他方法将不会被使用:取而代之的是,Jest 似乎使用createTransformer 创建了一个新的转换器,这导致我失去了一些头发,直到我弄清楚发生了什么。这种行为也是not documented

The babel-jest source 代表 Jest 27。

【问题讨论】:

    标签: jestjs


    【解决方案1】:

    在看到文档中没有反映该行为后,我提交了a documentation bug issue with Jest,随后我通过更新代码转换的类型和文档来fixed

    这个规则基本上是这样的:

    • 如果 createTransformer 作为导出存在,则 jest-transform 将使用它来动态创建转换器,而不使用任何其他导出
    • 如果转换器是使用import(而不是require)导入的,它将尝试使用processAsync,如果异步版本不存在则回退到process

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-09
      • 2015-06-18
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多