0

我有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.flowCustomer.js我不再有问题了

4

1 回答 1

0

问题是transform在您的笑话设置中使用时,它会覆盖默认设置。从文档

注意:如果您正在使用 babel-jest 转换器并想使用额外的代码预处理器,请记住,当“转换”以任何方式被覆盖时,babel-jest 不会再自动加载。如果你想用它来编译 JavaScript 代码,它必须被显式定义。参见 babel-jest 插件

所以你也需要作为.js文件的匹配器。

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

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

于 2017-04-14T11:12:41.430 回答