{"id":19349,"library":"babel-preset-umi","title":"babel-preset-umi","description":"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.","status":"active","version":"1.8.4","language":"javascript","source_language":"en","source_url":"https://github.com/umijs/umi/tree/master/packages/babel-preset-umi","tags":["javascript"],"install":[{"cmd":"npm install babel-preset-umi","lang":"bash","label":"npm"},{"cmd":"yarn add babel-preset-umi","lang":"bash","label":"yarn"},{"cmd":"pnpm add babel-preset-umi","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required for Babel transformation","package":"@babel/core","optional":false},{"reason":"Core preset for environment-specific transpilation","package":"@babel/preset-env","optional":false},{"reason":"Preset for JSX transformation (optional if preact option set)","package":"@babel/preset-react","optional":true},{"reason":"Required when transformRuntime option is true","package":"@babel/plugin-transform-runtime","optional":true}],"imports":[{"note":"CommonJS module export, not ESM. Use string reference in Babel config.","wrong":"import umi from 'babel-preset-umi'","symbol":"default (preset)","correct":"module.exports = { presets: ['umi'] }"},{"note":"Options must be in an array: ['umi', options]","wrong":"presets: ['umi', { targets: { node: '6' } }]","symbol":"Preset with options","correct":"module.exports = { presets: [['umi', { targets: { node: '6' } }]] }"},{"note":"No named exports; always use string reference.","wrong":"import { umi } from 'babel-preset-umi'","symbol":"TypeScript usage","correct":"// In .babelrc: { \"presets\": [\"umi\"] }"}],"quickstart":{"code":"module.exports = {\n  presets: [\n    ['umi', {\n      targets: {\n        browsers: ['last 2 versions']\n      },\n      commonjs: true,\n      transformRuntime: false,\n      preact: false,\n      debug: false\n    }]\n  ]\n};","lang":"javascript","description":"Configure babel-preset-umi in .babelrc or babel.config.js with browserslist targets and commonjs output."},"warnings":[{"fix":"Use `presets: [['umi', { ... }]]` in Babel config.","message":"Options object must be wrapped in an array: `['umi', options]` not `'umi', options`.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use either `browsers` or `targets`, not both.","message":"`browsers` option does not work if `targets` is specified. Only one should be used.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Consider using @babel/preset-env with appropriate targets instead.","message":"This preset is tightly coupled with Umi.js; direct use outside Umi projects is not recommended and may break.","severity":"deprecated","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run `npm install babel-preset-umi --save-dev` and ensure node_modules is correct.","cause":"Package not installed or Babel cannot resolve it.","error":"Error: Cannot find module 'babel-preset-umi'"},{"fix":"Correct format: `presets: [['umi', { ... }]]`","cause":"Options placed outside of the preset's array wrapper.","error":"Invalid options object. Babel Preset has been initialized using an options object that does not match the API schema."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}