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.
Common errors
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.
Warnings
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.
Install
npm install babel-preset-codecademy yarn add babel-preset-codecademy pnpm add babel-preset-codecademy Imports
- default wrong
import preset from 'babel-preset-codecademy' (preset is CommonJS, not default export)correctmodule.exports = require('babel-preset-codecademy') - preset (usage in config) wrong
module.exports = { presets: [require('babel-preset-codecademy')] } (require is unnecessary, string works)correctmodule.exports = { presets: ['babel-preset-codecademy'] } - TypeScript usage wrong
import preset from 'babel-preset-codecademy' (no type export)correct// No TypeScript definitions shipped; use @types/babel__core for config types import type { ConfigFunction } from '@babel/core';
Quickstart
// 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
}]
]
};