babel-jest 是 jest 默认集成的 babel 预处理器,自动编译 .js/.jsx/.ts 等文件以支持现代语法;需安装 jest、@babel/core、babel-jest 及至少一个 preset(如 @babel/preset-env),并配置 babel.config.js,jest 在满足依赖和配置条件下自动启用,无需显式声明 transform 规则。

在自动化测试中,babel-jest 是 Jest 默认集成的预处理器,它会自动用 Babel 编译 .js、.jsx、.ts(配合 @babel/preset-typescript)等测试文件,无需额外配置即可支持现代 JavaScript 语法(如可选链、空值合并、ES 模块、JSX 等)。
确保项目已正确安装依赖
需要安装以下核心包:
-
jest(测试运行器) -
@babel/core(Babel 核心) -
babel-jest(Jest 官方 Babel 预处理器) - 至少一个 Babel preset,例如:
@babel/preset-env(用于转译 ES 新特性)或@babel/preset-react(若含 JSX)
安装命令示例:
npm install --save-dev jest @babel/core babel-jest @babel/preset-env配置 Babel(babel.config.js 或 .babelrc)
Jest 会自动读取项目根目录下的 babel.config.js(推荐)或 .babelrc。配置需覆盖测试环境,建议使用 env.test 覆盖特定选项(如跳过某些插件以提升测试速度):
module.exports = {
presets: [
['@babel/preset-env', {
targets: { node: 'current' }, // 测试运行在 Node 环境,按当前 Node 版本编译
}],
],
env: {
test: {
plugins: [
// 可选:为测试添加特定插件,如支持顶层 await(Node ≥18.13)
'@babel/plugin-syntax-top-level-await',
],
},
},
};
Jest 自动启用 babel-jest,通常无需显式配置
只要满足以下条件,Jest 就会自动使用 babel-jest 处理匹配的文件:
- 已安装
babel-jest且在node_modules中可解析 - 存在有效的 Babel 配置文件(
babel.config.js等) - 测试文件后缀在 Jest 默认
transform规则范围内(如.js(x),.ts(x))
你可以在 jest.config.js 中显式确认(非必需):
module.exports = {
transform: {
'^.+\.(js|jsx|ts|tsx)$': 'babel-jest',
},
};
验证是否生效的小技巧
在测试文件中写一段仅新版本才支持的语法(如 const a ??= b),运行 npx jest 不报语法错误,说明 babel-jest 已正常工作。也可临时在测试中加一行:
若输出 object(ESM 元数据),说明 import.meta 已被正确转译或环境支持。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











