在前端开发中,我们经常需要写一些测试用例来保证代码的质量和稳定性。而 Jest 是一个流行的 JavaScript 测试框架,它具有简单易用、快速、可靠的特点。但在使用 Jest 进行测试时,有时会遇到 "SyntaxError: Unexpected token import" 的错误,这是因为 Jest 默认不支持 ES6 的 import 语法。本文将介绍如何解决这个问题。
解决方法
要解决 "SyntaxError: Unexpected token import" 的问题,需要安装两个依赖包:@babel/core 和 @babel/preset-env。@babel/core 是 Babel 的核心包,@babel/preset-env 是一个 Babel 插件,它可以根据当前的运行环境自动转换代码。安装命令如下:
npm install --save-dev @babel/core @babel/preset-env
安装完成后,需要在项目根目录下创建一个 .babelrc 文件,配置如下:
-- -------------------- ---- ------- - ---------- - - -------------------- - ---------- - ------- --------- - - - - -
这个配置文件告诉 Babel 使用 @babel/preset-env 插件,并指定目标环境为当前的 Node.js 版本。这样在运行 Jest 测试时,Babel 就会自动将 ES6 的 import 语法转换成 CommonJS 的 require 语法,从而避免 "SyntaxError: Unexpected token import" 的错误。
示例代码
下面是一个使用 Jest 进行测试的示例代码:
import { sum } from './math'; test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); });
在这个示例代码中,我们使用了 ES6 的 import 语法来引入一个名为 sum 的函数。如果不进行转换,Jest 就会报错。但是,通过上面的配置,Babel 会自动将 import 转换成 require,使得测试用例可以正常运行。
总结
本文介绍了如何解决 Jest 测试中遇到的 "SyntaxError: Unexpected token import" 问题。通过安装 @babel/core 和 @babel/preset-env 两个依赖包,并配置 .babelrc 文件,可以让 Jest 支持 ES6 的 import 语法。这对于写更加现代化的测试用例是非常有帮助的。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6641b4e4d3423812e4fb38bb