Import 导入时出现jest错误:意外的令牌导入

Import 导入时出现jest错误:意外的令牌导入,import,jestjs,Import,Jestjs,我见过类似的问题,但仍然找不到可行的解决方案 我正在尝试将Jest集成到一个工作项目中,该项目在数百个地方使用导入/导出默认值。以下测试不适用于使用require的Jest: const bar = require('../../flows/foo'); test('adds 1 + 2 to equal 3', () => { expect(bar.foobar(1, 2)).toBe(3); }); 当导出为: module.exports = { foobar: foob

我见过类似的问题,但仍然找不到可行的解决方案

我正在尝试将Jest集成到一个工作项目中,该项目在数百个地方使用导入/导出默认值。以下测试不适用于使用require的Jest:

const bar = require('../../flows/foo');

test('adds 1 + 2 to equal 3', () => {
  expect(bar.foobar(1, 2)).toBe(3);
});
当导出为:

module.exports = { 
 foobar: foobar,
  fizz: fizz
}
但是,我要测试的函数是使用以下方式导出的:

export default {
  foobar: foobar,
  fizz: fizz
};
因此,当我尝试更新要导入的测试时:

import foobar from '../../flows/foo';
出口:

export default {foobar: foobar};
我得到了错误

SyntaxError: Unexpected token import

您尚未在项目中设置
.babelrc
文件,因此无法进行传输。您需要将ES6+语法(
导入
导出
,等等)传输到浏览器可读的ES5中。

所需的一切:
//运行此命令(或npm等效命令)
纱线添加@babel/核心@babel/预设环境
//添加babel.config.js
module.exports={
预设:[
[
“@babel/preset env”,
{
目标:{
节点:“当前”
}
}
]
]
};

Jest会自动拾取它,无需其他配置。

我遇到了这个问题,并通过以下方式解决了它:

如果您使用babel传输代码,请记住使用
transform-es2015-modules-commonjs
插件

要使用它,您需要:

  • 在CLI中输入以下命令,安装BabelJS插件:
  • npm安装——保存dev babel-plugin-transform-es2015-modules-commonjs

  • 将该插件添加到babel配置中的插件列表中

  • 你能找到解决办法吗?
    plugins: [
      "transform-es2015-modules-commonjs"
    ]