我有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
时,我不再有问题了
答案 0 :(得分:0)
问题是,在您的jest设置中使用transform
时,它将覆盖默认设置。 From the docs:
注意:如果您正在使用babel-jest变压器并想使用 额外的代码预处理器,请记住,当“转换”时 以任何方式覆盖babel-jest不会自动加载 了。如果你想用它来编译JavaScript代码,它必须是 明确定义。请参阅babel-jest插件
所以你需要作为.js
文件的匹配器。
"transform": {
"^.+\\.js\\.flow$": "babel-jest",
"^.+\\.jsx?$": "babel-jest"
},
我不像正则表达式那么好,但这个原因可以简化为一个声明。