Babel (transpiler)

Babel.jsLogo

Original author(s)| Sebastian McKenzie
Developer(s)| contributors
Stable release|

7.6.1 / September 6, 2019; 6 years ago (2019-09-06)[1]

Written in| JavaScript
Operating system| Linux, macOS, Solaris, FreeBSD, OpenBSD, AIX, Microsoft Windows
Type| compiler
License| MIT[2]
Website| babeljs.io

Babel is a free and open-source JavaScript transpiler that is mainly used to convert ECMAScript 2015+ (ES6+) code into a backwards compatible version of JavaScript that can be run by older JavaScript engines. Babel is a popular tool for using the newest features of the JavaScript programming language.[3]

Developers can use new JavaScript language features by using Babel to convert their source code into versions of JavaScript that evolving browsers are able to process.[4] The core version of Babel is downloaded 5 million times a month as of 2016.[5]

Babel plugins are used to transform syntax that is not widely supported into a backwards-compatible version. For example, arrow functions, which are specified in ES6, are converted into regular function declarations.[6] Non-standard JavaScript syntax such as JSX can also be transformed.[7][8]

Babel provides polyfills to provide support for features that are missing entirely from JavaScript environments. For example, static methods like `Array.from` and built-ins like `Promise` are only available in ES6+, but they can be used in older environments if a Babel polyfill is used.[9]

## See also

* Comparison of web browsers
* TypeScript
* Web development tools
* Webpack JavaScript bundler

## References

1. ↑ "Babel.js Latest Release". https://github.com/babel/babel/releases/latest. Retrieved 11 September 2019.
2. ↑ "babel/LICENSE at master". https://github.com/babel/babel/blob/master/LICENSE. Retrieved 12 May 2018.
3. ↑ "Technology Radar | Emerging Technology Trends for 2017 | ThoughtWorks". https://www.thoughtworks.com/radar/tools/babel.
4. ↑ "Why Babel Matters | codemix". https://codemix.com/blog/why-babel-matters/.
5. ↑ "The State of Babel · Babel". https://babeljs.io/blog/2016/12/07/the-state-of-babel.
6. ↑ "Plugins · Babel". https://babeljs.io/docs/en/plugins. Retrieved 5 July 2019.
7. ↑ "Introducing JSX - React". https://reactjs.org/docs/introducing-jsx.html.
8. ↑ "Using React and building a web site on Azure". Microsoft Faculty Connection. https://blogs.msdn.microsoft.com/uk_faculty_connection/2017/07/21/using-react-and-building-a-web-site-on-azure/.
9. ↑ "@babel/polyfill". https://babeljs.io/docs/en/babel-polyfill. Retrieved 5 July 2019.

## External links

* GitHub project
* origin story

* v
* t
* e

JavaScript

Code analysis|

* ESLint
* JSHint
* JSLint

Transcompilers|

* Babel.js
* CoffeeScript
* LiveScript
* Dart
* Emscripten
* Google Closure Compiler
* Google Web Toolkit
* Morfik
* TypeScript
* AtScript
* Opa
* Nim
* Haxe
* ClojureScript
* WebSharper
* PureScript
* Reason
* Elm

Concepts|

* Client-side
* JavaScript library
* JavaScript syntax
* Unobtrusive JavaScript

Debuggers|

* Firebug
* Komodo IDE
* Microsoft Script Debugger
* Microsoft Script Editor
* Opera Dragonfly
* Web Inspector

Doc generators|

* JSDoc

Editors (comparison)|

* Ace
* Cloud9 IDE
* Atom
* CodeMirror
* Light Table
* Brackets
* Koding
* PhpStorm
* Orion
* Visual Studio
* Visual Studio Express
* Visual Studio Code
* Visual Studio Team Services

Engines|

* Comparison of engines
* DOM support
* List of ECMAScript engines

Frameworks|

* Comparison of JavaScript frameworks
* List of JavaScript libraries

Related technologies|

* Cascading Style Sheets
* Document Object Model
* HTML
* Dynamic HTML
* Ajax
* JSON
* WebAssembly
* asm.js

Package managers|

* npm

Application Bundlers|

* Webpack

Server-side|

* Active Server Pages
* CommonJS
* JSGI
* Node.js
* Wakanda

Unit testing|

* Jasmine
* Mocha
* QUnit
* List of JavaScript unit testing frameworks
* Jest

People|

* Douglas Crockford
* Brendan Eich
* John Resig

0.00

(0 votes)

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:Babel_(transpiler)&oldid=751181"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template