【问题标题】:babel-jest to transform non .js|.jsx extensionsbabel-jest 转换非 .js|.jsx 扩展
【发布时间】:2017-04-13 15:14:18
【问题描述】:

我有Customer.js.flow 类型的文件。

当我运行 jest 时,它会因以下错误而失败:

Customer.js.flow:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){export type Customer = {
                                                                                         ^^^^^^
SyntaxError: Unexpected token export

  at transformAndBuildScript (node_modules/jest-runtime/build/transform.js:320:12)

即使我明确添加:

"transform": {
  "^.+\\.js.flow$": "babel-jest",
  "^.+\\.jsx?$": "babel-jest"
},

当我将 Customer.js.flow 更改为 Customer.js 时,我不再有问题了

【问题讨论】:

    标签: jestjs babel-jest


    【解决方案1】:

    问题是当你在开玩笑设置中使用transform 时,它会覆盖默认值。 From the docs:

    注意:如果您正在使用 babel-jest 转换器并希望使用 附加代码预处理器,请记住,当“转换”是 以任何方式覆盖 babel-jest 不会自动加载 了。如果你想用它来编译 JavaScript 代码,它必须是 明确定义。见 babel-jest 插件

    因此,您还需要作为 .js 文件的匹配器。

    "transform": {
      "^.+\\.js\\.flow$": "babel-jest",
      "^.+\\.jsx?$": "babel-jest"
    },
    

    我没有正则表达式那么好,但是这个原因可以简化为一个语句。

    【讨论】:

    猜你喜欢
    • 2017-03-22
    • 2017-08-24
    • 2019-08-25
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2018-12-27
    • 2018-02-21
    • 2016-08-30
    相关资源
    最近更新 更多