babel-preset-codecademy

raw JSON →
7.1.0 verified Sat Apr 25 auth: no javascript

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.

error Cannot find module 'babel-preset-codecademy'
cause Package not installed but referenced in Babel config.
fix
npm install --save-dev babel-preset-codecademy
error Error: [BABEL] ... preset . is not a valid preset.
cause Typo in preset name or missing from node_modules.
fix
Ensure 'babel-preset-codecademy' is spelled correctly and installed.
breaking v7 requires React JSX transform (runtime: 'automatic'), removing the need for React in scope.
fix Update React code to new JSX transform; ensure @babel/preset-react is compatible.
deprecated Preset is deprecated for external use; it is designed for Codecademy's internal monorepo and may change without notice.
fix Use a community preset like @babel/preset-env, @babel/preset-react, etc.
gotcha Peer dependencies @babel/core and @babel/runtime are not automatically installed; install them explicitly.
fix npm install --save-dev @babel/core @babel/runtime
gotcha No source maps or TypeScript definitions; debugging can be opaque.
fix Add 'sourceType: 'unambiguous' and ensure Babel source maps are enabled.
npm install babel-preset-codecademy
yarn add babel-preset-codecademy
pnpm add babel-preset-codecademy

Example of using babel-preset-codecademy in a Babel configuration file with custom target options.

// babel.config.js
module.exports = {
  presets: [
    ['babel-preset-codecademy', {
      // Available options (from code inspection):
      // - targets: { browsers: '> 0.25%, not dead' } or { node: 'current' }
      // - useBuiltIns: 'usage' (default false)
      // - modules: false (default 'commonjs')
      // - react: { runtime: 'automatic' } (v7 breaking change)
      targets: { browsers: '> 0.25%, not dead' },
      useBuiltIns: 'usage',
      modules: false
    }]
  ]
};