Your SlideShare is downloading. ×
0
Google Closure Compiler
Google Closure Compiler
Google Closure Compiler
Google Closure Compiler
Google Closure Compiler
Google Closure Compiler
Google Closure Compiler
Google Closure Compiler
Google Closure Compiler
Google Closure Compiler
Google Closure Compiler
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Google Closure Compiler

3,035

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,035
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. GoogleClosure Compiler 2012/05/06 h13i32maru@Twitter maruyama-r@KLab
  • 2. 自己紹介• 丸山 亮(h13i32maru) 最近はJSを触ってます• KLab株式会社所属32 http://blog.h13i32maru.jp http://twitter.com/h13i32maru https://www.facebook.com/ryo.maruyama https://github.com/h13i32maru
  • 3. Closure Compiler• JavaScriptの結合・最適化・圧縮ツール - java製• Closureファミリーの一部 - Closure Library - Closure Template - Closure Linter
  • 4. Closure Compiler• 最適化レベル• エラー・警告• アノテーションチェック• 依存関係• extern宣言
  • 5. 最適化レベル• WHITE_SPACE_ONLY → (・ω・) - 改行、スペース、コメント等の削除のみ• SIMPLE_OPTIMIZATIONS → (`・ω・´) - ローカル変数名、関数の引数名の変更• ADVANCED_OPTIMIZATIONS → ((((;゚Д゚)))) gkbr - プロパティ名、関数名などもアグレッシブに変更 - 例えばFoo.Bar を Foo$Barとかに変更
  • 6. エラー・警告• エラー • 警告 - syntax - 名前衝突 - ケツカンマ - varによる再宣言 - 配列インデックス - 無名関数宣言 - etc... - etc...
  • 7. アノテーションチェック• JSDocアノテーションを元にしたチェック - @construcotr : new演算子チェック - @const : 定数最代入チェック - @interface/@implements : メソッド実装チェック
  • 8. 依存関係• 複数のJSファイルを結合する場合に依存関係を チェック• 使用されていないファイルは結合されない• 大規模ライブラリの一部をコンパイルする場合に 便利 //file1.js goog.provide("hoge.foo"); //file2.js goog.require("hoge.foo");
  • 9. extern宣言• 「外部JS」「ブラウザ固有オブジェクト」を使用 している場合に、名前変更されないようにする仕 組み• 例えばconsole.*を使用している場合など
  • 10. 参考• http://www37.atwiki.jp/aias-closurecompiler/pages/ 21.html
  • 11. おわり

×