首页 > 解决方案 > 使用 babel 转译 javascript 代码的问题

问题描述

由于 babel 没有正确转换代码的问题,所有测试都失败了。

以下是来自控制台的错误。

Jest encountered an unexpected token
  This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.
  By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".
  Here's what you can do:
   • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
   • If you need a custom transformation specify a "transform" option in your config.
   • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.
  You'll find more details and examples of these config options in the docs:
  https://jestjs.io/docs/en/configuration.html
  Details:
    13 |
    14 | 
  > 15 | import type { CreateUserInput, CreateSlackTeamInput } from "graphql-types";

下面是我的 Babel 配置。

{
  "presets": [
    "es2015"
  ]
}

标签: testingjestjsbabeljs

解决方案


我能够在本地重现您的问题并通过添加babel-preset-flow到 devDependencies 并将预设添加到.babelrc. 它失败的原因是babel 预设import type未涵盖语法。es2015

更新后的.babelrc文件将如下所示:

{ "presets": [ "es2015", "flow" ] }


推荐阅读