Drop any file to identify it
No upload. No signup. No sending your file halfway across the internet.
We tell you what it is, right here in your browser.
Drop it!
Let go to identify this file.
Couldn't identify this file
Need to convert it? fwip it →
Babel transpiles modern JavaScript (ES2024+) to older versions (ES5) for browsers that don't support newer syntax. .babelrc is its config: which presets (`@babel/preset-env`, `@babel/preset-react`, `@babel/preset-typescript`) and plugins (`@babel/plugin-transform-runtime`) to apply, and which environments to target.
Babel 7 (2018) introduced a distinction between .babelrc (file-relative — only affects files in its directory tree) and babel.config.js (project-wide — affects everything in the project, including node_modules dependencies if needed). Modern Babel projects mostly use babel.config.js because monorepos and tools that need to transform third-party code work better with project-wide config. .babelrc remains common in older projects.
Babel's relevance is shrinking. Vite, esbuild, and SWC do equivalent transpilation and run 10-100x faster (esbuild and SWC are written in compiled languages — Go and Rust respectively). New projects increasingly skip Babel entirely. Where Babel still wins: complex plugin ecosystems (legacy decorators, experimental syntax), framework integrations (Next.js still uses SWC by default but supports Babel), and monorepo setups with custom transforms.