SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
Google
Closure Compiler


                  2012/05/06
         h13i32maru@Twitter
           maruyama-r@KLab
自己紹介
• 丸山 亮(h13i32maru) 最近はJSを触ってます
• KLab株式会社所属
32   http://blog.h13i32maru.jp

     http://twitter.com/h13i32maru

     https://www.facebook.com/ryo.maruyama

     https://github.com/h13i32maru
Closure Compiler
• JavaScriptの結合・最適化・圧縮ツール
 - java製
• Closureファミリーの一部
 - Closure Library
 - Closure Template
 - Closure Linter
Closure Compiler
• 最適化レベル
• エラー・警告
• アノテーションチェック
• 依存関係
• extern宣言
最適化レベル
•   WHITE_SPACE_ONLY → (・ω・)

    -   改行、スペース、コメント等の削除のみ

•   SIMPLE_OPTIMIZATIONS → (`・ω・´)

    -   ローカル変数名、関数の引数名の変更

•   ADVANCED_OPTIMIZATIONS → ((((;゚Д゚)))) gkbr

    -   プロパティ名、関数名などもアグレッシブに変更

    -   例えばFoo.Bar を Foo$Barとかに変更
エラー・警告
• エラー       • 警告
 - syntax    - 名前衝突
 - ケツカンマ     - varによる再宣言
 - 配列インデックス - 無名関数宣言
 - etc...    - etc...
アノテーションチェック
• JSDocアノテーションを元にしたチェック
 - @construcotr : new演算子チェック
 - @const : 定数最代入チェック
 - @interface/@implements : メソッド実装チェック
依存関係
• 複数のJSファイルを結合する場合に依存関係を
 チェック

• 使用されていないファイルは結合されない
• 大規模ライブラリの一部をコンパイルする場合に
 便利      //file1.js
         goog.provide("hoge.foo");

         //file2.js
         goog.require("hoge.foo");
extern宣言
• 「外部JS」「ブラウザ固有オブジェクト」を使用
 している場合に、名前変更されないようにする仕
 組み

• 例えばconsole.*を使用している場合など
参考
• http://www37.atwiki.jp/aias-closurecompiler/pages/
  21.html
おわり

Mais conteúdo relacionado

Mais de Ryo Maruyama

画像を使わずにデザイン
画像を使わずにデザイン画像を使わずにデザイン
画像を使わずにデザイン
Ryo Maruyama
 
勝手に改造 Chrome to Phone
勝手に改造 Chrome to Phone勝手に改造 Chrome to Phone
勝手に改造 Chrome to Phone
Ryo Maruyama
 
レインボーテーブルを使ったハッシュの復号とSalt
レインボーテーブルを使ったハッシュの復号とSaltレインボーテーブルを使ったハッシュの復号とSalt
レインボーテーブルを使ったハッシュの復号とSalt
Ryo Maruyama
 
プログラミング言語Ruby 1章 イントロダクション
プログラミング言語Ruby 1章 イントロダクションプログラミング言語Ruby 1章 イントロダクション
プログラミング言語Ruby 1章 イントロダクション
Ryo Maruyama
 

Mais de Ryo Maruyama (10)

CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
 
JSDoc ToolKit
JSDoc ToolKitJSDoc ToolKit
JSDoc ToolKit
 
JavaScript入門
JavaScript入門JavaScript入門
JavaScript入門
 
画像を使わずにデザイン
画像を使わずにデザイン画像を使わずにデザイン
画像を使わずにデザイン
 
AWS Vol.1
AWS Vol.1AWS Vol.1
AWS Vol.1
 
HTML Launcher
HTML LauncherHTML Launcher
HTML Launcher
 
C2DM
C2DMC2DM
C2DM
 
勝手に改造 Chrome to Phone
勝手に改造 Chrome to Phone勝手に改造 Chrome to Phone
勝手に改造 Chrome to Phone
 
レインボーテーブルを使ったハッシュの復号とSalt
レインボーテーブルを使ったハッシュの復号とSaltレインボーテーブルを使ったハッシュの復号とSalt
レインボーテーブルを使ったハッシュの復号とSalt
 
プログラミング言語Ruby 1章 イントロダクション
プログラミング言語Ruby 1章 イントロダクションプログラミング言語Ruby 1章 イントロダクション
プログラミング言語Ruby 1章 イントロダクション
 

Google Closure Compiler