- Babel
- Babel - 进行预编译, 将 ES6+ 的代码转译到普通的 ES5 代码
- babelify - 包装成 Browserify transform 模块 的 Babel 转译器
- Google
- Traceur compiler - 将 ES6 的功能转换至 ES5, 包括 classes, generators, promises, destructuring patterns, default parameters 以及更多.
- es6ify - 包装成 Browserify transform 模块 的 Traceur 转译器
- Square
- ES6-module-transpiler - ES6 modules to AMD or CJS
- esnext - (已收并到Babel) 下一代与现代 JS 的转换器
- Facebook
- Regenerator - 转换 ES6 的 yield/generator functions 到 ES5
- jstransform - 一个简单的支持可插拔J 语法转换的组件, 附带一个 ES6 -> ES5 转换器小集合
- 其它
- es6-transpiler - (已收并到Babel) ES6 > ES5. 包括 classes, destructuring, default parameters
- defs - 转换 ES6 块作用域 const 和 let变量到 ES3 的 var
- es6_module_transpiler-rails - 基于 Rails Asset Pipeline 框架的 ES6 模块管理
- es6-macros 一些将 ES6 转译到 ES5 的小工具集
- Bitovi's transpile - 将 ES6 转译到 AMD, CJS, 和 StealJS.
- regexpu — 将 ES6 形式 (Unicode-aware) 的正则表达式转换到 ES5
- Babel: grunt-babel
- Traceur: grunt-traceur grunt-traceur-build
- ES6 Module Transpiler: grunt-es6-module-transpiler
- Regenerator: grunt-regenerator - ES6 generator functions to ES5
- grunt-microlib - 适合库使用的使用了ES6 模块转译器的工具集 (示例 Gruntfile)
- grunt-defs - 转换 ES6 块作用域 const 和 let变量 到 ES3 的工具
- es6-transpiler: grunt-es6-transpiler - ES6 → ES5
- esnext: grunt-esnext
- 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, 用了 FB 家的 jstransform
- esnext: gulp-esnext
- regexpu: gulp-regexpu
- Babel: broccoli-babel-transpiler
- Traceur: broccoli-traceur
- Regenerator: broccoli-regenerator
- ES6 Transpiler: broccoli-transpiler
- ES6 Module Transpiler: broccoli-es6-module-transpiler
- esnext: broccoli-esnext
- 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 (兼容最新的规范和Traceur)
- js-loaders - Mozilla's 符合规范的加载器原型
- JSPM - ES6, AMD, CJS 模块加载/包管理
- webpack 中使用的模块加载器
- beck.js - 为遗留环境(legacy environment)打造的 ES6 模块加载器管道 和 shim 工具箱
- 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
6to5
ortraceur
withgulp
andjasmine
support. - TypeScript - A superset of ECMAScript with strict typing that aims to align with ES6