17
Closure Compiler Updates for ES6 @teppeis Meguro.es #2 2016/02/10

Closure Compiler Updates for ES6

Embed Size (px)

Citation preview

Page 1: Closure Compiler Updates for ES6

Closure Compiler Updates for ES6

@teppeis

Meguro.es #2 2016/02/10

Page 2: Closure Compiler Updates for ES6

Hello!• Teppei Sato, @teppeis

• Cybozu, Inc. / kintone

• from Nihonbashi.es

Page 3: Closure Compiler Updates for ES6

http://azu.github.io/slide/2016/jser5years/sc22-ecmascript-ahodc.html

Page 4: Closure Compiler Updates for ES6

Closure Compiler

It compiles from JavaScript to better JavaScript.

Page 5: Closure Compiler Updates for ES6

本当のClosure Compiler

• 圧縮&最適化

• JSDocベースの静的型チェック

• ES6 Transpiler & Polyfills

• GitHubで超アクティブに進化中https://github.com/google/closure-compiler

Page 6: Closure Compiler Updates for ES6

Compile ES6 to ES5

java -jar compiler.jar \ --language_in ES6 \ --language_out ES5 \ foo.js

Page 7: Closure Compiler Updates for ES6
Page 8: Closure Compiler Updates for ES6
Page 9: Closure Compiler Updates for ES6

core-jsずるいよ!

Page 10: Closure Compiler Updates for ES6

core-js とは

• Polyfillライブラリ (ES5/6/7, DOM, 独自)

• 機能検出が細やかnative実装をなるべく使ってくれる

• ES6のPolyfillとしてはほぼ完成単体でcompat-table 30%ぐらい稼ぐ

Page 11: Closure Compiler Updates for ES6
Page 12: Closure Compiler Updates for ES6

TypeScriptずるい

• ぜんぜん関係ないくせにcompat-tableではcore-jsでスコアを水増し

• babelはデフォルトでセットになってるからまあしょうがない気がするけど

Page 13: Closure Compiler Updates for ES6

Closure Compilerにも

core-js を追加してみた(ローカルで)

Page 14: Closure Compiler Updates for ES6
Page 15: Closure Compiler Updates for ES6

勝った!

Page 16: Closure Compiler Updates for ES6

Conclusion

• Closure Compiler の ES6トランスパイル機能は、TypeScript や Traceur より強い程度には使えるレベルにあるよ。

• でもClosure Compiler、最近ES6 polyfillを独自実装し始めたってよ。大丈夫か。。。https://github.com/google/closure-compiler/tree/master/test/com/google/javascript/jscomp/js/es6

Page 17: Closure Compiler Updates for ES6

Thanks!