babel-preset-umi
raw JSON → 1.8.4 verified Sat Apr 25 auth: no javascript
A Babel preset used internally by the Umi.js framework to transpile modern JavaScript/TypeScript and JSX for browser or Node targets. The latest stable version is 1.8.4, though it is tightly coupled with Umi major versions (e.g., Umi 4). It supports browserslist targets, polyfills via core-js, and optional transforms like Preact. Unlike generic presets (e.g., @babel/preset-env), this preset is designed for Umi's build pipeline and may include framework-specific optimizations. Release cadence follows Umi's release cycle. It is recommended to use this preset only within Umi projects.
Common errors
error Error: Cannot find module 'babel-preset-umi' ↓
cause Package not installed or Babel cannot resolve it.
fix
Run
npm install babel-preset-umi --save-dev and ensure node_modules is correct. error Invalid options object. Babel Preset has been initialized using an options object that does not match the API schema. ↓
cause Options placed outside of the preset's array wrapper.
fix
Correct format:
presets: [['umi', { ... }]] Warnings
gotcha Options object must be wrapped in an array: `['umi', options]` not `'umi', options`. ↓
fix Use `presets: [['umi', { ... }]]` in Babel config.
gotcha `browsers` option does not work if `targets` is specified. Only one should be used. ↓
fix Use either `browsers` or `targets`, not both.
deprecated This preset is tightly coupled with Umi.js; direct use outside Umi projects is not recommended and may break. ↓
fix Consider using @babel/preset-env with appropriate targets instead.
Install
npm install babel-preset-umi yarn add babel-preset-umi pnpm add babel-preset-umi Imports
- default (preset) wrong
import umi from 'babel-preset-umi'correctmodule.exports = { presets: ['umi'] } - Preset with options wrong
presets: ['umi', { targets: { node: '6' } }]correctmodule.exports = { presets: [['umi', { targets: { node: '6' } }]] } - TypeScript usage wrong
import { umi } from 'babel-preset-umi'correct// In .babelrc: { "presets": ["umi"] }
Quickstart
module.exports = {
presets: [
['umi', {
targets: {
browsers: ['last 2 versions']
},
commonjs: true,
transformRuntime: false,
preact: false,
debug: false
}]
]
};