{"id":19265,"library":"babel-preset-codecademy","title":"babel-preset-codecademy","description":"A Babel preset used by Codecademy, version 7.1.0, combining plugins and presets for ES2015+, React JSX transform (breaking in v7), and environment-specific optimizations. Released erratically with major changes tied to internal needs. Differentiated by Codecademy-specific configuration defaults, peer-depending on @babel/core ^7.19.6 and @babel/runtime ^7.12.1. Not recommended for external projects as it is tightly coupled to Codecademy's monorepo and toolchain.","status":"active","version":"7.1.0","language":"javascript","source_language":"en","source_url":"ssh://git@github.com/Codecademy/client-modules","tags":["javascript","babel","es6","es2015"],"install":[{"cmd":"npm install babel-preset-codecademy","lang":"bash","label":"npm"},{"cmd":"yarn add babel-preset-codecademy","lang":"bash","label":"yarn"},{"cmd":"pnpm add babel-preset-codecademy","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency; Babel core is required at runtime.","package":"@babel/core","optional":false},{"reason":"Peer dependency; provides runtime helpers for transformed code.","package":"@babel/runtime","optional":false}],"imports":[{"note":"The preset is a CommonJS module exporting an array of presets/plugins, commonly used in .babelrc or babel.config.js.","wrong":"import preset from 'babel-preset-codecademy' (preset is CommonJS, not default export)","symbol":"default","correct":"module.exports = require('babel-preset-codecademy')"},{"note":"Babel resolves preset strings automatically; avoid direct require.","wrong":"module.exports = { presets: [require('babel-preset-codecademy')] } (require is unnecessary, string works)","symbol":"preset (usage in config)","correct":"module.exports = { presets: ['babel-preset-codecademy'] }"},{"note":"Package does not include TypeScript declarations; use @babel/core types for configuration.","wrong":"import preset from 'babel-preset-codecademy' (no type export)","symbol":"TypeScript usage","correct":"// No TypeScript definitions shipped; use @types/babel__core for config types\nimport type { ConfigFunction } from '@babel/core';"}],"quickstart":{"code":"// babel.config.js\nmodule.exports = {\n  presets: [\n    ['babel-preset-codecademy', {\n      // Available options (from code inspection):\n      // - targets: { browsers: '> 0.25%, not dead' } or { node: 'current' }\n      // - useBuiltIns: 'usage' (default false)\n      // - modules: false (default 'commonjs')\n      // - react: { runtime: 'automatic' } (v7 breaking change)\n      targets: { browsers: '> 0.25%, not dead' },\n      useBuiltIns: 'usage',\n      modules: false\n    }]\n  ]\n};","lang":"javascript","description":"Example of using babel-preset-codecademy in a Babel configuration file with custom target options."},"warnings":[{"fix":"Update React code to new JSX transform; ensure @babel/preset-react is compatible.","message":"v7 requires React JSX transform (runtime: 'automatic'), removing the need for React in scope.","severity":"breaking","affected_versions":">=7.0.0"},{"fix":"Use a community preset like @babel/preset-env, @babel/preset-react, etc.","message":"Preset is deprecated for external use; it is designed for Codecademy's internal monorepo and may change without notice.","severity":"deprecated","affected_versions":"all"},{"fix":"npm install --save-dev @babel/core @babel/runtime","message":"Peer dependencies @babel/core and @babel/runtime are not automatically installed; install them explicitly.","severity":"gotcha","affected_versions":"all"},{"fix":"Add 'sourceType: 'unambiguous' and ensure Babel source maps are enabled.","message":"No source maps or TypeScript definitions; debugging can be opaque.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"npm install --save-dev babel-preset-codecademy","cause":"Package not installed but referenced in Babel config.","error":"Cannot find module 'babel-preset-codecademy'"},{"fix":"Ensure 'babel-preset-codecademy' is spelled correctly and installed.","cause":"Typo in preset name or missing from node_modules.","error":"Error: [BABEL] ... preset . is not a valid preset."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}