Navigate:
~$BABEL0.0%

Babel: JavaScript compiler for modern syntax

JavaScript compiler transforming modern code into browser-compatible versions via AST.

LIVE RANKINGS • 09:57 AM • STEADY
OVERALL
#431
12
DEVELOPER TOOLS
#93
6
30 DAY RANKING TREND
ovr#431
·Devel#93
STARS
43.9K
FORKS
5.8K
7D STARS
+2
7D FORKS
+4
See Repo:
Share:

Learn more about Babel

Babel is a JavaScript transpiler that converts ECMAScript 2015+ code into backward-compatible versions for older JavaScript engines. The compiler works by parsing source code into an Abstract Syntax Tree, applying transformation plugins, and generating compatible output code. Babel operates through a plugin-based architecture where individual transformations handle specific language features like arrow functions, classes, and async/await. It is commonly integrated into build processes to support modern JavaScript development while maintaining compatibility with legacy browsers and environments.

Babel

1

Plugin Architecture

Modular system where individual plugins handle specific JavaScript transformations. This allows developers to configure exactly which language features to transform based on their target environments.

2

AST Processing

Transforms code by manipulating Abstract Syntax Trees rather than using string replacement. This approach ensures accurate transformations that preserve code semantics and handle edge cases correctly.

3

Preset Configurations

Bundled collections of plugins that target specific environments or use cases. Presets simplify configuration by providing curated transformation sets for common scenarios like browser compatibility or Node.js deployment.


// Input: Modern JavaScript with nullish coalescing
function greet(input) {
  return input ?? "Hello world";
}

// Output: Babel transforms to compatible JavaScript
function greet(input) {
  return input != null ? input : "Hello world";
}


vv8.0.0-beta.4

, @simbahax, and @sxzz for your first PRs!

  • `babel-generator`, `babel-parser`, `babel-plugin-transform-typescript`, `babel-types`
  • #17659 Drop support for TS `module <identifier>` (@nicolo-ribaudo)
  • `babel-preset-env`, `babel-preset-typescript`
  • #17670 breaking(preset-env): remove `isPluginRequired` export (@JLHwung)
  • `babel-parser`
vv7.28.6

and @kolvian for your first PRs!

  • #17589 Improve Unicode handling in code-frame tokenizer (@JLHwung)
  • `babel-plugin-transform-regenerator`
  • #17556 fix: `transform-regenerator` correctly handles scope (@liuxingbaoyu)
  • `babel-plugin-transform-react-jsx`
  • #17538 fix: Keep jsx comments (@liuxingbaoyu)
vv8.0.0-beta.3

* #17505 [Babel 8] Treat `allowSuperOutsideMethod` as top-level only ([@JLHwung](https://github.com/JLHwu

  • `babel-parser`
  • #17505 [Babel 8] Treat `allowSuperOutsideMethod` as top-level only (@JLHwung)
  • `babel-traverse`, `babel-types`
  • #17499 Enable `strictNullChecks` for `traverse` (@liuxingbaoyu)
  • `babel-plugin-transform-runtime`

See how people are using Babel

Loading tweets...


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers