Five to Six — Addy Osmani’s list of ECMAScript 6 tools

ES6 is where we’re headed — here’s how to use it today

Super-Script
, in 23 February 2015

As noted in my last post, there’s a ton of material to learn about JavaScript, and my approach to mastering it is first to rely on experienced, talented developers to point me in the right direction.

This list — like the last one — is a re-presentation, this time of 113 lightly commented links to ECMAScript 6 tools that enable you to use ES6 today. The list has been posted by the stellar Addy Osmani, the author of Learning JavaScript Design Patterns, published by O’Reilly in July 2012.

On his Twitter page (90K followers), Osmani lets slip that he is an “engineer at Google working on Chrome, Web & Polymer • Author • Creator of TodoMVC, @Yeoman, Web Starter Kit, grunt-uncss & others • Passionate about web tooling.” We can thank that passion about web tooling for this list of ECMAScript 6 tools.

If some of these categories or ES6 features are unfamiliar, the Learn ES6 page at Babel.com offers “a detailed overview of ECMAScript 6 features,” including 23 short sections on arrows, classes, enhanced object literals, template strings, destructuring, default + rest + spread, let + const, iterators + for..of, generators, comprehensions, Unicode, modules, module loaders, map + set + WeakMap + WeakSet, Proxies, symbols, subclassable built-ins, Math + Number + String + Object APIs, binary and octal literals, promises, Reflect API, and tail calls.

As before, I have not altered the original list except to provide visuals for many links, quote a self-description or summary from the site itself, identify authors when possible and cite some of the GitHub or npm metadata. Any non-quoted description I have added appears in italics and/or within square brackets.

 

ECMAScript 6 Tools

Transpilers

Babel

screen capture

Turn ES6+ code into vanilla ES5 with no runtime.
88 contributors star: 5,896 fork: 280

Traceur

screen capture

ES6 features > ES5. Includes classes, generators, promises, destructuring patterns, default parameters & more: “Traceur is a JavaScript.next-to-JavaScript-of-today compiler that allows you to use features from the future today…. Traceur allows you to try out new and proposed language features today, helping you say what you mean in your code while informing the standards process.”
A project from Google. 55 contributors star: 5,171 fork: 307

es6ify

screen capture

Traceur compiler wrapped as a Browserify v2 transform: “browserify >=v2 transform to compile JavaScript.next (ES6) to JavaScript.current (ES5) on the fly.”
A project of Thorsten Lorenz. 14 contributors star: 565 fork: 34, downloads in the last month at npm: 15,952

babelify

screen capture

Babel transpiler wrapped as a Browserify transform: “Browserify plugin for Babel
Author: Sebastian McKenzie. 16 contributors star: 310 fork: 21

es6-transpiler

screen capture

ES6 > ES5. Includes classes, destructuring, default parameters, spread: “Tomorrow’s JavaScript syntax today”
A project of Егор Халимоненко. 5 contributors star: 199 fork: 19

Square’s es6-module-transpiler

screen capture

ES6 modules to AMD or CJS: “ES6 Module Transpiler is an experimental compiler that allows you to write your JavaScript using a subset of the ES6 module syntax, and compile it into AMD or CommonJS modules.”
28 contributors star: 1,121 fork: 80

Square’s esnext

screen capture

Next-generation JavaScript to today’s JavaScript transformer, now a part of Babel: “esnext has merged with Babel. All the features of esnext are supported by Babel, and more. All the tests from esnext have been ported over to Babel to ensure that switchers will have minimal code changes to make. The maintainers of esnext will continue working on Babel to bring better spec compliance, ES6 feature support, and performance.”
12 contributors star: 341 fork: 20

Facebook’s regenerator

screen capture

Transform ES6 yield/generator functions to ES5: “Some of us on the JavaScript Infrastructure team at Facebook got restless waiting for the future to get here, so we developed a tool called regenerator to replace generator functions with efficient JavaScript-of-today (ECMAScript 5 or ES5 for short) that behaves the same way. Since the tool itself is implemented in ES5, you can try it right now, in this web browser, without leaving this web page.” (regenerator site)
A project from Facebook. 26 contributors star: 1,144 fork: 100

Facebook’s jstransform

screen capture

A simple utility for pluggable JS syntax transforms. Comes with a small set of ES6 -> ES5 transforms: “NOTE: If you’re looking for a library for writing new greenfield JS transformations, consider looking at the Recast library instead of jstransform. We are still actively supporting jstransform (and intend to for the foreseeable future), but longer term we would like to direct efforts toward Recast. Recast does a far better job of supporting a multi-pass JS transformation pipeline, and this is important when attempting to apply many transformations to a source file.”
A project from Facebook. 25 contributors star: 319 fork: 44

defs

screen capture

ES6 block-scoped const and let variables to ES3 vars: “Node already supports const and let so you can use that today (run node --harmony and "use strict"). defs.js enables you to do the same for browser code. While developing you can rely on the experimental support in Chrome (chrome://flags, check Enable experimental JavaScript). defs.js is also a pretty decent static scope analyzer/linter.

“The talk LET’s CONST together, right now (with ES3)from Front-Trends 2013 (slides) includes more information about let, const and defs.js. See also the blog post ES3 <3 block scoped const and let => defs.js.”
A project of Olov Lassus. 5 contributors star: 107 fork: 8

es6_module_transpiler-rails

screen capture

ES6 Modules in the Rails Asset Pipeline
Authored by Brian Cardarella. 9 contributors star: 81 fork: 9

Some Sweet.js macros

screen capture

… that compile from ES6 to ES5: “This is a collection of sweet.js macros that implement syntactic ES6 features that can be easily compiled out to ES5 JavaScript, which can be used today everywhere.

Warning: This is still in development and most of these features are not completely compliant with ES6 yet. I wouldn’t recommend using it for production code yet.

“Currently implemented: destructuring (including elision and rest), classes, fat arrow functions”
A project of James Long. 5 contributors star: 205 fork: 17

Bitovi’s transpile

screen capture

Converts ES6 to AMD, CJS, and StealJS.
A project from Bitovi. 4 contributors star: 13 fork: 4

regexpu

screen capture

Transform Unicode-aware ES6 regular expressions to ES5: “regexpu is a source code transpiler that enables the use of ES6 Unicode regular expressions in JavaScript-of-today (ES5). It rewrites regular expressions that make use of the ES6 u flag into equivalent ES5-compatible regular expressions. ”
A project of Mathias Bynens. 3 contributors star: 51 fork: 3

Build-time transpilation

Grunt Tasks

[Grunt is a JavaScript taskrunner — a task-based, command-line build tool for JS projects.]

Babel: grunt-babel

screen capture

Turn ES6+ code into vanilla ES5 with no runtime using Babel
Authored by Sindre Sorhus. 4 contributors star: 118 fork: 11

Traceur: grunt-traceur

screen capture

ES6 > ES5 transpilation, grunt-traceur-build

“A grunt plugin for Google’s Traceur-Compile, a lib to compile ES6 JavaScript into ES5 JavaScript.”
A project of Aaron Frost. 15 contributors star: 215 fork: 38

ES6 Module Transpiler: grunt-es6-module-transpiler

screen capture

“A Grunt task for processing ES6 module import/export syntax into one of AMD, CommonJS, YUI or globals using the es6-module-transpiler. Also allows you to temporarily enable ES6 modules for other tasks.”
A project of Joe Fiorini. 10 contributors star: 84 fork: 24

Regenerator: grunt-regenerator

screen capture

ES6 generator functions to ES5
A project of Sindre Sorhus. 2 contributors star: 21 fork: 2

grunt-microlib

screen capture

Tools for libs using ES6 module transpiler (sample Gruntfile)
A project of Thomas Boyt. 2 contributors star: 28 fork: 6

grunt-defs

screen capture

ES6 block scoped const and let variables, to ES3
A project of Laboratorium EE. 1 contributors star: 4 fork: 1

es6-transpiler: grunt-es6-transpiler

screen capture

ES6 → ES5
A project of Sindre Sorhus. 1 contributor star: 10 fork: 1

esnext: grunt-esnext

screen capture

“Grunt task for compiling JS.next to JS.today, using esnext
A project of Shinnosuke Watanabe. 3 contributors star: 5 fork: 2

Gulp Plugins

[Gulp is an intuitive, code-over-configuration, streaming build system.]

Babel: gulp-babel

screen capture

“Turn ES6 code into vanilla ES5 with no runtime required using Babel
Authored by Sindre Sorhus. 8 contributors star: 258 fork: 14

Traceur: gulp-traceur

screen capture

Traceur is a JavaScript.next to JavaScript-of-today compiler”
A project of Sindre Sorhus. 13 contributors star: 161 fork: 42

Regenerator: gulp-regenerator

screen capture

“Transpile ES6 generator functions to ES5 with Regenerator
A project of Sindre Sorhus. 2 contributors star: 16

ES6 Module Transpiler: gulp-es6-module-transpiler

screen capture

Gulp plugin for the ES6 Module Transpiler
A project of Ryan Seddon. 6 contributors star: 49 fork: 18

es6-transpiler: gulp-es6-transpiler

screen capture

ES6 → ES5
A project of Sindre Sorhus. 4 contributors star: 43 fork: 5

es6-jstransform: gulp-jstransform

screen capture

ES6 → ES5 using FB’s jstransform
A project of hemanth.hm. 2 contributors star: 11 fork: 3

esnext: gulp-esnext

screen capture

“Transform next-generation JavaScript to today’s JavaScript with esnext
A project of Sindre Sorhus. 4 contributors star: 27 fork: 3

regexpu: gulp-regexpu

screen capture

“gulp-regexpu is a Gulp plugin to transpile ES6 Unicode regular expressions to ES5 with regexpu.

Note: You may want to use a full-blown transpiler such as gulp-traceur or gulp-babel instead, as those support regexpu transpilation as well as many other ES6/ES7 features.”
A project of Mathias Bynens. 1 contributors star: 3

Broccoli Plugins

[Broccoli is a“fast, reliable asset pipeline, supporting constant-time rebuilds and compactbuild definitions. Comparable to the Rails asset pipeline in scope, though it runs on Node and is backend-agnostic. For background and architecture, see the introductory blog post.”]

Babel: broccoli-babel-transpiler

screen capture

“A Broccoli plugin which transpile ES6 to readable ES5 by using Babel.”
6 contributors star: 22 fork: 10

Traceur: broccoli-traceur

screen capture

Traceur is a JavaScript.next to JavaScript-of-today compiler”
A project of Sindre Sorhus. 4 contributors star: 27 fork: 9

Regenerator: broccoli-regenerator

screen capture

“Transpile ES6 generator functions to ES5 with Regenerator
A project of Sindre Sorhus. 1 contributor star: 6 fork: 2

ES6 Transpiler: broccoli-transpiler

screen capture

Transpile ES6 to ES5 with es6-transpiler
A project of Sindre Sorhus. 1 contributor star: 10 fork: 2

ES6 Module Transpiler: broccoli-es6-module-transpiler

screen capture

“A Broccoli plugin that transpiles ES6 modules to other module types using Square’s es6-module-transpiler.”
A project of Martin Muñoz. 7 contributors star: 6 fork: 11

esnext: broccoli-esnext

screen capture

“JS.next-to-JS.today transpiler for Broccoli, using esnext
A project of Shinnosuke Watanabe. 3 contributors star: 6 fork: 4

ES6 fat arrow transpiler: broccoli-es6-arrow

screen capture

“ES6 arrow functions compiled to ES5 compliant code.”
A project of hemanth.hm. 1 contributor star: 1 f

Brunch Plugins

[“Brunch is an ultra-fast HTML5 build tool.”]

Babel: babel-brunch

screen capture

Brunch plugin using Babel to turn ES6 code into vanilla ES5 with no runtime required.”
Author: Luis Couto. 2 contributors star: 5 fork: 2

ES6 Module Transpiler: es6-module-transpiler-brunch

screen capture

Brunch plugin for es6-module-transpiler, [which] is an experimental compiler that allows you to write your JavaScript using a subset of the current ES6 module syntax, and compile it into AMD, CommonJS, and globals styles.
A project of Giovanni Collazo. 1 contributor star: 8 fork: 4

Webpack plugins

[webpack is a module bundler. [It] takes modules with dependencies and generates static assets representing those modules.]

Babel: babel-loader

screen capture

“Turn ES6 code into vanilla ES5 with no runtime required using Babel
13 contributors star: 111 fork: 15

Traceur: traceur-compiler-loader

screen capture

“Up to date Traceur Compiler loader for Webpack.”
A project of PatrickJS. 1 contributor star: 0 fork: 1

Duo plugins

[“Duo is a next-generation package manager that blends the best ideas from Component, Browserify and Go to make organizing and writing front-end code quick and painless.”]

Babel: duo-babel

screen capture

“Duo plugin for babel
Author: Henrik Kjelsberg. 3 contributors star: 7 fork: 2

Connect plugins

[“Connect is an extensible HTTP server framework for node using ‘plugins’ known as middleware.”]

Babel: babel-connect

screen capture

“Connect plugin for babel
Author: Sebastian McKenzie. 3 contributors star: 8 fork: 3

Gobble plugins

[“Gobble is a build tool — it takes your source files, and turns them into a set of output files.”]

Babel: gobble-babel

screen capture

“Compile ES6 files with gobble and babel. Creates sourcemaps automatically.”
Author: Rich Harris. 2 contributors star: 2 fork: 2

Traceur: gobble-es6-transpiler

screen capture

“Compile ES6 files with gobble and es6-transpiler.”
Author: Rich Harris. 2 contributors star: 0 fork: 1

Jade plugins

[“Jade is a high performance template engine heavily influenced by Haml and implemented with JavaScript for node and browsers.”]

Babel: jade-babel

screen capture

“This is a simple module which adds a babel (ES6 to ES5) filter to jade.”
2 contributors star: 7 fork: 0

Traceur: jade-traceur

screen capture

“This is a simple module which adds a traceur filter to jade.”
1 contributor star: 1 fork: 0, downloads in the last month from npm: 53

Jest plugins

[“Painless JavaScript Unit Testing built on top of the Jasmine test framework.”]

Babel: babel-jest

screen capture

Jest plugin for Babel
3 contributors star: 19 fork: 7

Karma plugins

[“Karma is not a testing framework, nor an assertion library. Karma just launches a HTTP server, and generates the test runner HTML file you probably already know from your favorite testing framework. ”]

Babel: karma-babel-preprocessor

screen capture

Karma plugin for babel.”
Author: Shuhei Kagawa. 3 contributors star: 11 fork: 2

Traceur: karma-traceur-preprocessor

screen capture

“A Karma plugin. Compile ES6 script on the fly using traceur-compiler.”
8 contributors star: 12 fork: 8

Sprockets plugins

[“Sprockets is a Ruby library for compiling and serving web assets. It features declarative dependency management for JavaScript and CSS assets, as well as a powerful preprocessor pipeline that allows you to write assets in languages like CoffeeScript, Sass and SCSS.”]

6to5: sprockets-es6

screen capture

“A Sprockets transformer that converts ES6 code into vanilla ES5 with Babel JS.

“This plugin is primarily experimental and will never reach a stable 1.0. The purpose is to test out BabelJS features on Sprockets 3.x and include it by default in Sprockets 4.x.”
A project of Joshua Peek. 5 contributors star: 105 fork: 9

Traceur: sprockets-traceur

screen capture

“A [Ruby] gem that integrates with Google Traceur so that you can use ECMAScript 6 (JavaScript Next) features in your Rails[/Sinatra/Rack] application right now, without having to wait for browser vendors to catch up.”
A project of gunpowderlabs. 3 contributors star: 21 fork: 2

Browser plugins

Scratch JS

screen capture

A Chrome/Opera DevTools extension to run ES6 on a page with either Babel or Traceur: “[Scratch JS is]a Chrome DevTools extension (available here) that allows you to execute ES6/ESNext/ES2015 code in the context of the page you’re viewing, as though it were the standard DevTools console.”
A project of Rich Gilbank. 5 contributors star: 70 fork: 11

Module Loaders

ES6 Module Loader polyfill

screen capture

(compat with latest spec and Traceur): “Dynamically loads ES6 modules in browsers and NodeJS with support for loading existing and custom module formats through loader hooks.”
32 contributors star: 789 fork: 70

js-loaders

screen capture

Mozilla’s spec-compliant loader prototype: “Pseudoimplementation of the proposed ES6 module loaders.

“The goal is to evolve this into a usable self-hosted implementation of the proposed Loader API. It’s a long-term goal.”
A project of Jason Orendorff. 4 contributors star: 48 fork: 8

JSPM

screen capture

ES6, AMD, CJS module loading/package management: “jspm is a package manager for the SystemJS universal module loader, built on top of the dynamic ES6 module loader.”
28 contributors star: 1,046 fork: 57

Module Loader for webpack

screen capture

“ES6 module loader for webpack

“DEPRECATED: Please use a more up-to-date transpiler, such as babel-loader.”
A project of Kyle Robinson Young. 2 contributors star: 52 fork: 8

beck.js

screen capture

Toolkit for ES6 Module Loader pipelines, shim for legacy environments: “beck is obsolete. check out RaveJS: https://github.com/RaveJS/rave ”
A project of John Hann. 1 contributor star: 5 fork: 0

Boilerplates

es6-boilerplate

screen capture

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.
A project of David Nelson. 2 contributors star: 52 fork: 3

Code generation

generator-node-esnext

screen capture

Yeoman generator for Traceur apps: “Yeoman generator for creating node es next (ES6, ES7) projects, using traceur and ES6 module loader.”
A project of Brian Di Palma. 1 contributor star: 4 fork: 0

grunt-init-es6

screen capture

Scaffold node modules with unit tests, authored in ES6: “Start a project, authored in ES6, transpiling to AMD, RJS and Browser specs.”
48 downloads in the last month at npm

Loom generators with ES6 ember modules

screen capture

“This generator set is used in ember-tools to create the application objects.”
A project of Ryan Florence. 1 contributor star: 16 fork: 13

Brunch plugin

screen capture

For ES6 module transpilation: “Adds ES6 module syntax to Brunch based on Square’s es6-module-transpiler.

“ES6 Module Transpiler is an experimental compiler that allows you to write your JavaScript using a subset of the current ES6 module syntax, and compile it into AMD or CommonJS modules.”
A project of Giovanni Collazo. 1 contributor star: 8 fork: 4, downloads in the last month from npm: 160

Polyfills

core-js

screen capture

Modular and compact polyfills for ES6 including Symbols, Map, Set, Iterators, Promises, setImmediate, Array generics, etc. The standard library used by Babel.
A project of Denis Pushkarev. 5 contributors star: 348 fork: 10, downloads in the last month at npm: 139,831

es6-shim

screen capture

almost all new ES6 methods — from Map, Set, String, Array, Object, Object.is and more: “Provides compatibility shims so that legacy JavaScript engines behave as closely as possible to ECMAScript 6 (Harmony).”
30 contributors star: 52 fork: 83

WeakMap, Map, Set, HashMap - ES6 Collections

screen capture

“Use the new Map, Set, and WeakMap from the upcoming ES6 standard right now! This shim provides full functionality for these collections and delivers the benefits of using them.”
A project of Brandon Benvie. 5 contributors star: 126 fork: 15

Polymer’s WeakMap shim

screen capture

“DEPRECATED

“This repo has moved to https://github.com/Polymer/webcomponentsjs
7 contributors star: 30 fork: 12

String.prototype.startsWith

ES6 A robust & optimized ES3-compatible polyfill for the String.prototype.startsWith method in ECMAScript 6.”
A project of Mathias Bynens. 1 contributor star: 22 fork: 4

String.prototype.endsWith

ES6 A robust & optimized ES3-compatible polyfill for the String.prototype.endsWith method in ECMAScript 6.”
A project of Mathias Bynens. 1 contributor star: 10 fork: 3

String.prototype.at

ES6/ES7 A robust & optimized ES3-compatible polyfill for the String.prototype.at proposal for ECMAScript 6/7.”
A project of Mathias Bynens. 2 contributors star: 20 fork: 2

String.prototype.repeat

ES6 A robust & optimized ES3-compatible polyfill for the String.prototype.repeat method in ECMAScript 6.”
A project of Mathias Bynens. 4 contributors star: 13 fork: 4

String.prototype.includes

ES6 A robust & optimized ES3-compatible polyfill for the String.prototype.includes method (previously known as String.prototype.contains) in ECMAScript 6.”
A project of Mathias Bynens. 1 contributor star: 36 fork: 2

String.prototype.codePointAt

ES6 A robust & optimized ES3-compatible polyfill for the String.prototype.codePointAt method in ECMAScript 6.”
A project of Mathias Bynens. 1 contributor star: 19 fork: 4

String.fromCodePoint

ES6 An robust & optimized ES3-compatible polyfill for the String.fromCodePoint method in ECMAScript 6.”
A project of Mathias Bynens. 1 contributor star: 14 fork: 2

Array.prototype.find

“Simple ES6 Array.prototype.find polyfill for older environments taken from es6-shim.

“For browsers and node.js.”
A project of Paul Miller. 6 contributors star: 7 fork: 11

Array.prototype.findIndex

“Simple ES6 Array.prototype.findIndex polyfill for older environments taken from es6-shim.

“For browsers and node.js.”
A project of Paul Miller. 5 contributors star: 5 fork: 6

Array.from

ES6 A robust & optimized ES3-compatible polyfill for the Array.from method in ECMAScript 6.”
A project of Mathias Bynens. 4 contributors star: 9 fork: 4

Array.of

ES6 A robust & optimized ES3-compatible polyfill for the Array.of method in ECMAScript 6.”
A project of Mathias Bynens. 2 contributors star: 10 fork: 2

Object.assign

“ES6 Object.assign() ponyfill

“Ponyfill: A polyfill that doesn’t overwrite the native method”
A project of Sindre Sorhus. 4 contributors star: 111 fork: 8

Number.isFinite

“ES6 Number.isFinite() ponyfill

“Ponyfill: A polyfill that doesn’t overwrite the native method”
A project of Sindre Sorhus. 2 contributors star: 4 fork: 1

Math.sign

“ES6 Math.sign() ponyfill

“Ponyfill: A polyfill that doesn’t overwrite the native method”
A project of Sindre Sorhus. 1 contributor star: 7 fork: 0

RegExp.prototype.match

ES6 A robust & optimized ES3-compatible polyfill for the RegExp.prototype.match method in ECMAScript 6.”
A project of Mathias Bynens. 1 contributor star: 8 fork: 0

RegExp.prototype.search

ES6 A robust & optimized ES3-compatible polyfill for the RegExp.prototype.search method in ECMAScript 6.”
A project of Mathias Bynens. 1 contributor star: 5 fork: 0

es6-promise

screen capture

Polyfill for Promises matching the ES6 API: “The implementation is a subset of rsvp.js, if you’re wanting extra features and more debugging options, check out the full library.”
A project of Jake Archibald. 42 contributors star: 1,398 fork: 62

ES6 Map Shim

screen capture

Destructive shim that follows the latest specification as closely as possible: “DEPRECATED: New ES6 Map Spec cannot be shimmed”
A project of Eric Wendelin. 1 contributor star: 12 fork: 0

Function.create

“Create named functions easily in JavaScript.

“It is similar to the sketched Function.create in ECMAScript (two years old). The proposal was never accepted, so this function is not based on any standards, but it’s still very useful.”
A project of Bjarke Walling. 1 contributor star: 4 fork: 0

ES6 shim

screen capture

“Based on nearly complete draft standard. Should be stable apart from bug fixes.”
A project of Joshua Bell. 5 contributors star: 348 fork: 77

ES6 Symbol polyfill

screen capture

“ECMAScript 6 Symbol polyfill”
A project of Mariusz Nowak. 1 contributor star: 14 fork: 1

ES6 Map, Set, WeakMap

screen capture

“An implementation of ECMAScript Next/Harmony/6 collections—WeakMap, Map and Set. Compatible with ECMAScript 5 capable environments”
A project of EliSnow. 1 contributor star: 5 fork: 0

harmony-reflect

screen capture

ES6 reflection module (contains the Proxy API)
A project of Tom Van Cutsem. 7 contributors star: 163 fork: 17

ES5 based shims in pure CJS style

screen capture

List of ECMAScript 6 shims: Array, Object, Number, Math and String functions/methods, plus Map, Set, Symbol and WeakMap objects
A gist from Mariusz Nowak. 63 entries

Editors

ES6 syntax highlighting for Sublime Text and TextMate

screen capture

“Better JavaScript language definition for TextMate and SublimeText. This builds on the language files commonly used and adds more fine grained matching and also includes new features from ECMAScript 6 like modules, succinct methods, arrow functions, classes, generators and accessors (ES5).”
A project of Brandon Benvie. 7 contributors star: 287 fork: 26

ES6 syntax support in WebStorm and PhpStorm, compilation to ES5 with Traceur file watcher

screen capture

Published to YouTube on Apr 16, 2014

DocPad plugin

screen capture

for Traceur: “Adds support for Traceur to JavaScript compilation to DocPad
A project of Peter Flannery. 1 contributor star: 2 fork: 0

Parsers

Esprima Harmony branch

screen capture

Experimental branch of the Esprima parser which can parse ES6 features to SpiderMonkey AST format.
A project of Ariya Hidayat. 38 contributors star: 42 fork: 386

Acorn

screen capture

A small, fast, JavaScript-based JavaScript parser with ES6 support, parses to SpiderMonkey AST format.
A project of Marijn Haverbeke. 32 contributors star: 857 fork: 122

esparse

screen capture

ES6 parser written in ES6: “esparse is a parser for the ECMAScript programming language, written in JavaScript. Given a string representing a JavaScript program, it will output an abstract syntax tree representing that program.”
2 contributors star: 69 fork: 5

Traceur compiler

screen capture

Also has built-in parser available under traceur.syntax.Parser: “Traceur is a JavaScript.next-to-JavaScript-of-today compiler”
A project from Google. 55 contributors star: 4,791 fork: 285

Other

ES.next showcase

screen capture

Real-world usage examples of ES6 features.
A project of Sindre Sorhus. 8 contributors star: 204 fork: 6

looper

screen capture

Static analysis tools for ES6: “Looper is a project that provides tools for analyzing ES6 code in an effort to make transpiled output smaller and more efficient.”
A project of Yehuda Katz. 1 contributor star: 9 fork: 0

es6-module-packager

screen capture

“Packages a collection of ES6 modules into a single distribution compatible with existing module patterns.”
A project of Kevin Decker. 3 contributors star: 10 fork: 2, downloads in the last month at npm: 959

es-dependency-graph

screen capture

Generate a list of imports and exports from ES6 module files, useful for preloading, bundling, etc.

“Utility for obtaining the dependency graph from ES6 modules.”
A project from Yahoo. 1 contributor star: 7 fork: 4

grunt-es-dependency-graph

screen capture

Generate a list of imports and exports from ES6 module files, useful for preloading, bundling, etc.

“Grunt task to generate a JSON file with the dependency tree in ES6 module files.”
A project from Yahoo. 1 contributor star: 2 fork: 2

es6-import-validate

screen capture

validate matching named/default import statements in ES6 modules.

“A simple ES6 Harmony Module import statement validator.”
Author: Jacob Gable. 1 contributor star: 4 fork: 1

grunt-es6-import-validate

screen capture

Validate matching named/default import statements in ES6 modules.
Author: Jacob Gable. 2 contributors star: 3 fork: 1

let-er

screen capture

transpiles let-block block-scoping (not accepted into ES6) into either ES3 or ES6.

“By simply writing let ( .. ) { .. } style code, and then running your code through let-er as a build-step, your block-scoping will work exactly as you expect, today.”
A project of Kyle Simpson. 1 contributors star: 36 fork: 2

Recast

screen capture

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.

“Recast exposes two essential interfaces, one for parsing JavaScript code (require("recast").parse) and the other for reprinting modified syntax trees (require("recast").print).”
A project of Ben Newman. 17 contributors star: 418 fork: 34

Paws on ES6

screen capture

“Minimalist examples of ES6 functionalities.”
5 contributors star: 96 fork: 6

ES6 on node

screen capture

How to use ES6 features in node.js.
By Hemanth.HM. Posted on September 1, 2013

es6-translate

screen capture

Uses the ES6 loader hooks to load (node flavored) commonjs packages in ES6.
A project of Calvin Metcalf. 1 contributor star: 4 fork: 0

Isparta

screen capture

“A code coverage tool for ES6 (6to5).”
A project of Douglas Duteil. 3 contributors star: 38 fork: 7

babel-node

screen capture

Run node cli with ES6 transpiling using Babel.

ES6 Lab setup

screen capture

A simple setup for transpiling ES6 to ES5 using 6to5 or traceur with gulp and jasmine support.
A project of hemanth.hm. 2 contributors star: 18 fork: 2

TypeScript

screen capture

A superset of ECMAScript with strict typing that aims to align with ES6: “TypeScript is a language for application-scale JavaScript. TypeScript adds optional types, classes, and modules to JavaScript. TypeScript supports tools for large-scale JavaScript applications for any browser, for any host, on any OS. TypeScript compiles to readable, standards-based JavaScript. Try it out at the playground, and stay up to date via our blog and twitter account.”
A project from Microsoft. 41 contributors star: 3,968 fork: 376

 


 

last updated: May 17, 2015 (partial)

Photo of railway clock by Jeremy Seitz (CC BY-SA 2.0). The image has been cropped and flipped horizontally for presentation purposes.

Metadata last updated on March 15, 2015