首页 > 解决方案 > 用于修复“Jest 遇到意外令牌”以进行导入/导出的 Jest 配置

问题描述

我想用 Jest 运行以下测试。我还没有 babel-config 或 jest-config。如何配置 jest 以使用 ES6 功能,如导入/导出?

index.js:

export const add = (a, b) => a + b;

index.test.js

import { add } from '.';

describe('add', () => {
  it('adds a + b', () => {
    expect(add(1, 2)).toBe(3);
  });
});

标签: jestjsbabeljsbabel-jest

解决方案


原来它的工作原理就像文档中描述的那样:https ://jestjs.io/docs/en/getting-started#using-babel

要使用 Babel,请通过 yarn 安装所需的依赖项:

yarn add --dev babel-jest @babel/core @babel/preset-env

通过在项目的根目录中创建一个 babel.config.js 文件来配置 Babel 以针对当前版本的 Node:

// babel.config.js
module.exports = {
  presets: [
    [
      '@babel/preset-env',
      {
        targets: {
          node: 'current',
        },
      },
    ],
  ],
};

注意: Jest 需要与 babel-jest 包具有相同的主要版本。我有 Jest v23 和 babel-jest v24,它们会导致错误消息的误导。


推荐阅读