Awesome ECMAScript 6 Tools
ECMAScript 6 Toolsを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
トランスパイラー
- Babel - ランタイムなしでES6+コードを通常のES5へ変換。
- Traceur compiler - ES6機能をES5へ変換。クラス、ジェネレーター、Promise、分割代入パターン、デフォルト引数などを含む。
- es6ify - Browserify v2 TransformとしてラップされたTraceur Compiler。
- babelify - Browserify TransformとしてラップされたBabelトランスパイラー。
- es6-transpiler - ES6からES5へ変換。クラス、分割代入、デフォルト引数、Spreadを含む。
- Squareのes6-module-transpiler - ES6モジュールをAMDまたはCJSへ変換。
- Facebookのregenerator - ES6のYield/Generator FunctionをES5へ変換。
- Facebookのjstransform - 差し替え可能なJS構文変換用のシンプルなユーティリティ。少数のES6からES5への変換を同梱。
- defs - ES6のブロックスコープconst/let変数をES3のvarへ変換。
- es6_module_transpiler-rails - Rails Asset PipelineでES6モジュールを利用。
- ES6からES5へコンパイルするSweet.jsマクロ集ES6をES5にコンパイルするもの
- Bitoviのtranspile - ES6をAMD、CJS、StealJSへ変換。
- regexpu — Unicode対応ES6正規表現をES5へ変換。
- Lebab - ES5コードからES6への近似的な変換。
ビルド時トランスパイル
Gulpプラグイン
- 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 - FacebookのjstransformでES6 → ES5。
- regexpu: gulp-regexpu
- TypeScript: gulp-typescript
Gruntタスク
- Babel: grunt-babel - ランタイムなしでES6+コードを通常のES5へ変換。
- Traceur: grunt-traceur ES6からES5へのトランスパイル、grunt-traceur-build
- ES6 Module Transpiler: grunt-es6-module-transpiler
- Regenerator: grunt-regenerator - ES6 Generator FunctionをES5へ変換。
- grunt-microlib - ES6 Module Transpilerを使うライブラリ向けツール(Gruntfileの例)。
- grunt-defs - ES6のブロックスコープconst/let変数をES3へ変換。
- es6-transpiler: grunt-es6-transpiler - ES6 → ES5
- TypeScript: grunt-ts - ES6+からES5/ES3へのトランスパイル。
Broccoliプラグイン
- 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
- TypeScript: broccoli-tsc
Brunchプラグイン
- Babel: babel-brunch
- ES6 Module Transpiler: es6-module-transpiler-brunch
- TypeScript: typescript-brunch
Webpackプラグイン
- Babel: babel-loader
- Traceur: traceur-compiler-loader
- TypeScript: awesome-typescript-loader
Duoプラグイン
- Babel: duo-babel
- TypeScript: duo-typescript
Connectプラグイン
- Babel: babel-connect
- TypeScript: typescript-middleware
Gobbleプラグイン
- Babel: gobble-babel
- Traceur: gobble-es6-transpiler
Jadeプラグイン
- Babel: jade-babel
- Traceur: jade-traceur
Jestプラグイン
- Babel: babel-jest
Karmaプラグイン
- Babel: karma-babel-preprocessor
- Traceur: karma-traceur-preprocessor
- TypeScript: karma-typescript-preprocessor
Sprocketsプラグイン
- Babel: sprockets-es6
- Traceur: sprockets-traceur
- TypeScript: typescript-rails
ブラウザープラグイン
- Scratch JS - BabelまたはTraceurを使い、ページ上でES6を実行するChrome/Opera DevTools拡張。
- generator-typescript - TypeScriptアプリ向けYeomanジェネレーター。
Mochaプラグイン
- Mocha Traceur - JSファイルをTraceur Compilerへ通すシンプルなMochaプラグイン。
モジュールローダー
- ES6 Module Loader Polyfill(最新仕様およびTraceur互換)。
- js-loaders - Mozillaの仕様準拠ローダープロトタイプ。
- JSPM - ES6、AMD、CJSモジュールの読み込み/パッケージ管理。
- Babel Module Loader
- beck.js - ES6 Module Loaderパイプライン向けツールキット、旧環境向けShim。
ボイラープレート
- es6-boilerplate - AMDおよびブラウザーグローバルモジュールとTraceurを組み合わせ、Source Map、連結、最小化、圧縮、実ブラウザー上のユニットテストを使って今すぐES6を利用できるようにするツール群。
- es6-jspm-gulp-boilerplate - JSPMとBabelを組み合わせ、Source Map、連結、最小化、圧縮、ES6を使う実ブラウザー上のユニットテストにより今すぐES6を利用可能にするツール群。
コード生成
- generator-node-esnext - Traceurアプリ向けYeomanジェネレーター。
- generator-es6-babel - Babelアプリ向けYeomanジェネレーター。
- generator-gulp-babelify - Babel、Browserify、Gulp向けYeomanジェネレーター。
- grunt-init-es6 - ES6で記述し、ユニットテスト付きのNodeモジュールをひな形生成。
- Loom generators with ES6 ember modules
- ES6モジュールをトランスパイルするBrunchプラグインES6モジュールのトランスパイル用
Polyfill
- core-js - Symbol、Map、Set、Iterator、Promise、setImmediate、Array Genericなどを含む、ES6向けモジュール式でコンパクトなPolyfill。Babelが使う標準ライブラリ。
- es6-shim - Map、Set、String、Array、Object、Object.isなど、ほぼすべての新しいES6メソッド。
- WeakMap, Map, Set, HashMap - ES6 Collections
- PolymerのWeakMap Shim
String.prototype.startsWithString.prototype.endsWithString.prototype.atString.prototype.repeatString.prototype.includesString.prototype.codePointAtString.fromCodePointArray.prototype.findArray.prototype.findIndexArray.fromArray.ofObject.assignNumber.isFiniteMath.signRegExp.prototype.matchRegExp.prototype.search- es6-promise - ES6 APIに一致するPromise用Polyfill。
- ES6 Map Shim - 最新仕様へ可能な限り忠実に従う破壊的Shim。
Function.create- ES6 shim
- ES6 Symbol polyfill
- ES6 Map, Set, WeakMap
- harmony-reflect - ES6のReflection Module(Proxy APIを含む)。
- 純粋なCJS形式によるES5ベースShim - Array、Object、Number、Math、Stringの関数/メソッドと、Map、Set、Symbol、WeakMapオブジェクト。
エディター
- Sublime TextとTextMate
- WebStormとPhpStormのES6構文対応、およびFile WatcherまたはTask RunnerによるES5へのコンパイル。
- Traceur向けDocPadプラグインTraceur用
- 文法・トランスパイルパッケージ。Atom向け。
- WebStormのES6トランスパイル選択肢を学ぶブログ記事。
パーサー
- Esprima - ES6対応JavaScriptパーサー。ESTree AST形式へ解析。
- Acorn - ES6対応の小型・高速なJavaScript製JavaScriptパーサー。SpiderMonkey AST形式へ解析。
- esparse - ES6で記述されたES6パーサー。
- Traceur compilerには、
traceur.syntax.Parserで利用できる組み込みパーサーもある。
その他
- ES.next showcase - ES6機能の実世界での使用例。
- looper - ES6向け静的解析ツール。
- es6-module-packager
- es-dependency-graphとgrunt-es-dependency-graph - ES6モジュールファイルからImport/Export一覧を生成し、事前読み込み、バンドルなどに利用。
- es6-import-validateとgrunt-es6-import-validate - ES6モジュール内で名前付き/デフォルトImport文が対応するか検証。
- let-er - ES6では採用されなかったLet BlockのブロックスコープをES3またはES6へトランスパイル。
- Recast - EsprimaベースのJavaScript構文木変換器、保守的Pretty Printer、自動Source Map生成器。regeneratorやes6-arrow-functionなど、上記の複数トランスパイラーが使用。
- Paws on ES6 - ES6機能の最小限の例。
- ES6 on node - Node.jsでES6機能を使う方法。
- es6-translate - ES6 Loader Hookを使い、Node風CommonJSパッケージをES6で読み込む。
- Isparta
- babel-node - BabelでES6をトランスパイルしながらNode CLIを実行。
- ES6 Lab setup -
BabelまたはtraceurでES6をES5へトランスパイルし、gulpとjasmineへ対応するシンプルな構成。 - TypeScript - ES6との整合を目指す、強い型付きECMAScriptスーパーセット。
- Rollup - 次世代JavaScriptモジュールバンドラー。ES2015モジュールでアプリやライブラリを記述し、ブラウザーとNode.jsで使える単一ファイルへ効率的にバンドル。