When Babel is a good fit
- You depend on Babel-only plugins or presets.
- You are migrating an existing Babel-heavy project incrementally.
- You want targeted transforms for specific file types (for example, MDX).
Babel capabilities
| Capability | What it gives you |
|---|---|
| Targeted transforms | Run Babel for specific file types (for example, MDX) without replacing the full build pipeline |
| Plugin ecosystem access | Use Babel-only presets/plugins from existing web projects |
| Incremental migration | Move legacy Babel extension projects to Extension.js in smaller steps |
| Rspack (Extension.js bundler) integration | Configure Babel through extension.config.* config hook |
Example setup
Install Babel dependencies: Createbabel.config.json:
extension.config.js for MDX only:
Replace SWC for JS/TS only if required
Use this pattern only when you need Babel to process JS/TS entry files directly:Best practices
- Prefer targeted Babel usage before replacing the default JS/TS pipeline.
- Keep Babel rules explicit so loader ordering stays predictable.
- Reuse Babel only where migration or plugin compatibility requires it.
Next steps
- Learn how to customize Rspack configuration.
- Keep code quality high with ESLint.

