{"id":20169,"library":"kaba-babel-preset","title":"kaba-babel-preset","description":"A custom Babel preset for use with the Kaba build system, currently at v4.1.4. Provides legacy and modern environment configurations via `@babel/preset-env` and includes support for React, nullish coalescing, and numeric separators. Peer dependency on `core-js ^3.16.1`. Key differentiator: returns separate configs for legacy and modern browsers, allowing differential serving. Release cadence is irregular, with minor and patch updates as needed.","status":"active","version":"4.1.4","language":"javascript","source_language":"en","source_url":"https://github.com/Becklyn/kaba-babel-preset","tags":["javascript"],"install":[{"cmd":"npm install kaba-babel-preset","lang":"bash","label":"npm"},{"cmd":"yarn add kaba-babel-preset","lang":"bash","label":"yarn"},{"cmd":"pnpm add kaba-babel-preset","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency for polyfilling via @babel/preset-env's useBuiltIns","package":"core-js","optional":false}],"imports":[{"note":"ESM default export returns an object with `legacy` and `modern` presets. CJS require works but defaults to the object.","wrong":"const { legacy, modern } = require('kaba-babel-preset');","symbol":"default","correct":"import kabaPreset from 'kaba-babel-preset';"},{"note":"Named exports are not available as ESM; destructure from default import.","wrong":"import { legacy } from 'kaba-babel-preset';","symbol":"legacy","correct":"const { legacy } = require('kaba-babel-preset');"},{"note":"Use default import then destructure, or CJS destructure.","wrong":"import { modern } from 'kaba-babel-preset';","symbol":"modern","correct":"import preset from 'kaba-babel-preset'; const { modern } = preset;"}],"quickstart":{"code":"// babel.config.js\nmodule.exports = function (api) {\n  api.cache(true);\n  const { legacy, modern } = require('kaba-babel-preset');\n  // Example for differential serving based on browser targets\n  const isModern = process.env.BROWSERS_ENV === 'modern';\n  return isModern ? modern : legacy;\n};","lang":"javascript","description":"Shows how to use kaba-babel-preset in a Babel config, selecting legacy or modern preset based on an environment variable."},"warnings":[{"fix":"Update usage to destructure the exported object: `const { legacy, modern } = require('kaba-babel-preset');`","message":"v4.0.0 changed from a single preset config to returning an object with `legacy` and `modern` presets.","severity":"breaking","affected_versions":">=4.0.0"},{"fix":"Ensure `core-js` is installed as a peer dependency and configure `useBuiltIns` appropriately.","message":"v3.0.0 switched from individual transforms to `@babel/preset-env`, which may alter polyfilling behavior.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Upgrade to v4.1.3 or later to suppress the warning.","message":"The `loose` mode warning in build output has been removed in v4.1.3, but older versions may produce warnings.","severity":"deprecated","affected_versions":">=4.1.0 <4.1.3"},{"fix":"Run `npm install core-js@^3.16.1` or add it to your project's dependencies.","message":"The preset expects `core-js` as a peer dependency; missing it will cause polyfill errors at runtime.","severity":"gotcha","affected_versions":">=4.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Install core-js: `npm install core-js@^3.16.1`","cause":"Missing peer dependency `core-js`.","error":"Cannot find module 'core-js'"},{"fix":"Use `const { legacy, modern } = require('kaba-babel-preset');`","cause":"Incorrectly assuming the preset is a function; it's an object with properties `legacy` and `modern`.","error":"TypeError: kabaBabelPreset is not a function"},{"fix":"Ensure the preset is only listed once in your Babel config.","cause":"Duplicate application of kaba-babel-preset due to misconfiguration.","error":"Error: Multiple presets/plugins with the same name"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}