testing - 使用 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"
]
}
解决方案
我能够在本地重现您的问题并通过添加babel-preset-flow
到 devDependencies 并将预设添加到.babelrc
. 它失败的原因是babel 预设import type
未涵盖语法。es2015
更新后的.babelrc
文件将如下所示:
{
"presets": [
"es2015", "flow"
]
}
推荐阅读
- c++ - 为什么我不能使用箭头运算符访问对象
- python - 如何在 PySimpleGUI 代码中实现一个不断运行的循环?
- javascript - 在给定路径上绘制圆圈
- python - Python将长数据帧转换为宽数据帧(字符串)
- python - 制造克隆敌人
- java - 哪个chromedriver版本支持电子应用程序?
- gulp - 配置和运行 gulp 来观察和编译 sass
- python - 按组大小过滤时 pd.groupby.filter 的最快替代方案
- r - 在引导中使用数据转换的 MLR3 遇到错误
- javascript - JavaScript PostgreSQL - 不能在 INSERT 中插入超过 2 个字符