esbuild-jest-transform
raw JSON → 2.0.1 verified Mon Apr 27 auth: no javascript
A Jest transformer that uses esbuild for fast code transformation, supporting JavaScript, TypeScript, and JSX. Current stable version is 2.0.1. It allows passing custom esbuild transform options via Jest config, such as target, loaders, and format. Compared to alternatives like ts-jest or @swc/jest, it leverages esbuild's speed but offers less plugin ecosystem. Updated as of 2023, with peer dependency on esbuild >=0.17.4 <1.0.0.
Common errors
error Cannot find module 'esbuild' from 'esbuild-jest-transform.js' ↓
cause esbuild is not installed as a peer dependency.
fix
npm install -D esbuild
error TypeError: esbuildTransform is not a function ↓
cause Incompatible esbuild version (e.g., esbuild <0.17.4).
fix
Update esbuild to ^0.17.4 or later.
error Jest: The transform 'esbuild-jest-transform' was not found. ↓
cause Missing or incorrect package name in Jest config.
fix
Ensure 'esbuild-jest-transform' is installed and spelled correctly in transform config.
error SyntaxError: Unexpected token 'export' ↓
cause ES module syntax in source file not transformed because file is excluded by testMatch or transformIgnorePatterns.
fix
Adjust transformIgnorePatterns to include your source files, e.g., transformIgnorePatterns: []
error Error: esbuild-jest-transform: Unknown option '...' ↓
cause Invalid esbuild transform option passed in Jest config.
fix
Refer to esbuild TransformOptions documentation for valid options.
Warnings
breaking Peer dependency esbuild >=0.17.4 <1.0.0; older esbuild versions will cause errors. ↓
fix Update esbuild to ^0.17.4 or later.
deprecated The 'target' option in transform config may be deprecated in future esbuild versions; use 'target' in esbuild config instead. ↓
fix Refer to esbuild documentation for current options.
gotcha Jest cache may cause stale transforms; clear cache with jest --clearCache if changes don't take effect. ↓
fix Run npx jest --clearCache after changing esbuild options.
gotcha ESM support in Jest requires experimental ESM handling; this transformer works with CJS modules by default. ↓
fix Use transformIgnorePatterns to avoid transforming node_modules and ensure CJS compatibility.
deprecated The package may not be actively maintained; check for updates or consider alternatives like @swc/jest. ↓
fix Evaluate other Jest transforms if esbuild-jest-transform lacks needed features or updates.
Install
npm install esbuild-jest-transform yarn add esbuild-jest-transform pnpm add esbuild-jest-transform Imports
- default transformer wrong
import esbuildJestTransform from 'esbuild-jest-transform'; ... use as transformcorrectmodule.exports = { transform: { '^.+\\.[jt]sx?$': 'esbuild-jest-transform' } }; - createTransformer wrong
import { createTransformer } from 'esbuild-jest-transform';correctconst { createTransformer } = require('esbuild-jest-transform'); - TransformOptions
import type { TransformOptions } from 'esbuild';
Quickstart
// jest.config.js
module.exports = {
transform: {
'^.+\\.[jt]sx?$': [
'esbuild-jest-transform',
{
target: 'es2015',
loaders: { '.svg': 'dataurl' },
},
],
},
};
// package.json
{
"scripts": {
"test": "jest"
},
"devDependencies": {
"esbuild": "^0.17.4",
"esbuild-jest-transform": "^2.0.1",
"jest": "^29.0.0"
}
}
// Install dependencies:
// npm install -D esbuild esbuild-jest-transform jest