- Babel - Turn ES6+ code into vanilla ES5 with no runtime
- Traceur compiler - ES6 features > ES5. Includes classes, generators, promises, destructuring patterns, default parameters & more.
- es6ify - Traceur compiler wrapped as a Browserify v2 transform
- babelify - Babel transpiler wrapped as a Browserify transform
- es6-transpiler - ES6 > ES5. Includes classes, destructuring, default parameters, spread
- Square's es6-module-transpiler - ES6 modules to AMD or CJS
- Facebook's regenerator - transform ES6 yield/generator functions to ES5
- Facebook's jstransform - A simple utility for pluggable JS syntax transforms. Comes with a small set of ES6 -> ES5 transforms
- defs - ES6 block-scoped const and let variables to ES3 vars
- es6_module_transpiler-rails - ES6 Modules in the Rails Asset Pipeline
- Some Sweet.js macros that compile from ES6 to ES5
- Bitovi's transpile - Converts ES6 to AMD, CJS, and StealJS.
- regexpu — Transform Unicode-aware ES6 regular expressions to ES5
- Babel: grunt-babel - Turn ES6+ code into vanilla ES5 with no runtime
- Traceur: grunt-traceur ES6 > ES5 transpilation, grunt-traceur-build
- ES6 Module Transpiler: grunt-es6-module-transpiler
- Regenerator: grunt-regenerator - ES6 generator functions to ES5
- grunt-microlib - tools for libs using ES6 module transpiler (sample Gruntfile)
- grunt-defs - ES6 block scoped const and let variables, to ES3
- es6-transpiler: grunt-es6-transpiler - ES6 → ES5
- Babel: gulp-babel
- Traceur: gulp-traceur
- Regenerator: gulp-regenerator
- ES6 Module Transpiler: gulp-es6-module-transpiler
- es6-transpiler: gulp-es6-transpiler - ES6 → ES5
- es6-jstransform: gulp-jstransform - ES6 → ES5 using FB's jstransform
- regexpu: gulp-regexpu
- Babel: broccoli-babel-transpiler
- Traceur: broccoli-traceur
- Regenerator: broccoli-regenerator
- ES6 Transpiler: broccoli-transpiler
- ES6 Module Transpiler: broccoli-es6-module-transpiler
- ES6 fat arrow transpiler: broccoli-es6-arrow
- Babel: babel-brunch
- ES6 Module Transpiler: es6-module-transpiler-brunch
- Babel: babel-loader
- Traceur: traceur-compiler-loader
- Babel: duo-babel
- Babel: babel-connect
- Babel: gobble-babel
- Traceur: gobble-es6-transpiler
- Babel: jade-babel
- Traceur: jade-traceur
- Babel: babel-jest
- Babel: karma-babel-preprocessor
- Traceur: karma-traceur-preprocessor
- Babel: sprockets-es6
- Traceur: sprockets-traceur
- Scratch JS - A Chrome/Opera DevTools extension to run ES6 on a page with either Babel or Traceur
- Mocha Traceur - A simple plugin for Mocha to pass JS files through the Traceur compiler
- ES6 Module Loader polyfill (compat with latest spec and Traceur)
- js-loaders - Mozilla's spec-compliant loader prototype
- JSPM - ES6, AMD, CJS module loading/package management
- Module Loader for webpack
- beck.js - toolkit for ES6 Module Loader pipelines, shim for legacy environments
- es6-boilerplate - Tooling to allow the community to use es6 now via traceur in conjunction with amd and browser global modules, with source maps, concatenation, minification, compression, and unit testing in real browsers.
- generator-node-esnext - Yeoman generator for Traceur apps
- generator-es6-babel - Yeoman generator for Babel apps
- grunt-init-es6 - scaffold node modules with unit tests, authored in ES6
- Loom generators with ES6 ember modules
- Brunch plugin for ES6 module transpilation
- core-js - Modular and compact polyfills for ES6 including Symbols, Map, Set, Iterators, Promises, setImmediate, Array generics, etc. The standard library used by Babel.
- es6-shim - almost all new ES6 methods — from Map, Set, String, Array, Object, Object.is and more.
- WeakMap, Map, Set, HashMap - ES6 Collections
- Polymer's WeakMap shim
String.prototype.startsWith
String.prototype.endsWith
String.prototype.at
String.prototype.repeat
String.prototype.includes
String.prototype.codePointAt
String.fromCodePoint
Array.prototype.find
Array.prototype.findIndex
Array.from
Array.of
Object.assign
Number.isFinite
Math.sign
RegExp.prototype.match
RegExp.prototype.search
- es6-promise - polyfill for Promises matching the ES6 API
- ES6 Map Shim - destructive shim that follows the latest specification as closely as possible.
Function.create
- ES6 shim
- ES6 Symbol polyfill
- ES6 Map, Set, WeakMap
- harmony-reflect - ES6 reflection module (contains the Proxy API)
- ES5 based shims in pure CJS style - Array, Object, Number, Math and String functions/methods, plus Map, Set, Symbol and WeakMap objects
- ES6 syntax highlighting for Sublime Text and TextMate
- ES6 syntax support in WebStorm and PhpStorm, compilation to ES5 with Traceur file watcher
- DocPad plugin for Traceur
- Esprima Harmony branch - Experimental branch of the Esprima parser which can parse ES6 features to SpiderMonkey AST format.
- Acorn - A small, fast, JavaScript-based JavaScript parser with ES6 support, parses to SpiderMonkey AST format.
- esparse - ES6 parser written in ES6.
- Traceur compiler also has built-in parser available under
traceur.syntax.Parser
.
- ES.next showcase - real-world usage examples of ES6 features
- looper - static analysis tools for ES6
- es6-module-packager
- es-dependency-graph and grunt-es-dependency-graph - Generate a list of imports and exports from ES6 module files, useful for preloading, bundling, etc.
- es6-import-validate and grunt-es6-import-validate - validate matching named/default import statements in ES6 modules.
- let-er - transpiles let-block block-scoping (not accepted into ES6) into either ES3 or ES6
- Recast - Esprima-based JavaScript syntax tree transformer, conservative pretty-printer, and automatic source map generator. Used by several of the transpilers listed above, including regenerator and es6-arrow-function.
- Paws on ES6 - Minimalist examples of ES6 functionalities.
- ES6 on node - How to use ES6 features in node.js.
- es6-translate - Uses the ES6 loader hooks to load (node flavored) commonjs packages in ES6.
- Isparta
- babel-node - Run node cli with ES6 transpiling using Babel.
- ES6 Lab setup - A simple setup for transpiling ES6 to ES5 using
Babel
ortraceur
withgulp
andjasmine
support. - TypeScript - A superset of ECMAScript with strict typing that aims to align with ES6