Submit Search
Upload
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
•
Download as KEY, PDF
•
3 likes
•
3,325 views
Kazuya Hiruma
Follow
ありえるえりあ勉強会で使ったGoogle Closure Toolsの簡単な説明資料。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 31
Download now
Recommended
本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。
Teppei Sato
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Teppei Sato
Closure Compiler Updates for ES6
Closure Compiler Updates for ES6
Teppei Sato
Flowtype Introduction
Flowtype Introduction
Teppei Sato
Containerで変わるDevOps
Containerで変わるDevOps
shokiri
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきた
Shingo Inoue
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
Masahiro Wakame
コンパイラ指向ReVIEW
コンパイラ指向ReVIEW
Masahiro Wakame
Recommended
本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。
Teppei Sato
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Teppei Sato
Closure Compiler Updates for ES6
Closure Compiler Updates for ES6
Teppei Sato
Flowtype Introduction
Flowtype Introduction
Teppei Sato
Containerで変わるDevOps
Containerで変わるDevOps
shokiri
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきた
Shingo Inoue
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
Masahiro Wakame
コンパイラ指向ReVIEW
コンパイラ指向ReVIEW
Masahiro Wakame
CategoLJについて
CategoLJについて
Toshiaki Maki
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
H2O Space. Co., Ltd.
Reactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみた
Tsuyoshi Maeda
Babelで先取り次世代javascript
Babelで先取り次世代javascript
Tsuyoshi Maeda
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
Grunt入門
Grunt入門
Tsuyoshi Maeda
200k/sec
200k/sec
Sugawara Genki
chat bot framework for Java8
chat bot framework for Java8
masahitojp
Web socket and gRPC
Web socket and gRPC
TIS Inc
Cocoa勉強会#63-Xcode Server〜みんなで使ってみる
Cocoa勉強会#63-Xcode Server〜みんなで使ってみる
Masayuki Nii
SQLによるDynamoDBの操作
SQLによるDynamoDBの操作
Sugawara Genki
Antのススメ
Antのススメ
Tatsumi Naganuma
20140930 anything as_code
20140930 anything as_code
Sugawara Genki
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門
Kazuki Tsutsumi
Lightweight C#
Lightweight C#
将 高野
130207 kyotorb
130207 kyotorb
Yuki Shibazaki
入門ClojureScript
入門ClojureScript
sohta
About Reauire.js
About Reauire.js
Kyohei Morimoto
BaseScriptについて
BaseScriptについて
Kiyotaka Oku
PowerShell de Azure
PowerShell de Azure
Atsushi Kojima
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
More Related Content
What's hot
CategoLJについて
CategoLJについて
Toshiaki Maki
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
H2O Space. Co., Ltd.
Reactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみた
Tsuyoshi Maeda
Babelで先取り次世代javascript
Babelで先取り次世代javascript
Tsuyoshi Maeda
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
Grunt入門
Grunt入門
Tsuyoshi Maeda
200k/sec
200k/sec
Sugawara Genki
chat bot framework for Java8
chat bot framework for Java8
masahitojp
Web socket and gRPC
Web socket and gRPC
TIS Inc
Cocoa勉強会#63-Xcode Server〜みんなで使ってみる
Cocoa勉強会#63-Xcode Server〜みんなで使ってみる
Masayuki Nii
SQLによるDynamoDBの操作
SQLによるDynamoDBの操作
Sugawara Genki
Antのススメ
Antのススメ
Tatsumi Naganuma
20140930 anything as_code
20140930 anything as_code
Sugawara Genki
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門
Kazuki Tsutsumi
Lightweight C#
Lightweight C#
将 高野
130207 kyotorb
130207 kyotorb
Yuki Shibazaki
入門ClojureScript
入門ClojureScript
sohta
About Reauire.js
About Reauire.js
Kyohei Morimoto
BaseScriptについて
BaseScriptについて
Kiyotaka Oku
PowerShell de Azure
PowerShell de Azure
Atsushi Kojima
What's hot
(20)
CategoLJについて
CategoLJについて
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
Reactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみた
Babelで先取り次世代javascript
Babelで先取り次世代javascript
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
Grunt入門
Grunt入門
200k/sec
200k/sec
chat bot framework for Java8
chat bot framework for Java8
Web socket and gRPC
Web socket and gRPC
Cocoa勉強会#63-Xcode Server〜みんなで使ってみる
Cocoa勉強会#63-Xcode Server〜みんなで使ってみる
SQLによるDynamoDBの操作
SQLによるDynamoDBの操作
Antのススメ
Antのススメ
20140930 anything as_code
20140930 anything as_code
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門
Lightweight C#
Lightweight C#
130207 kyotorb
130207 kyotorb
入門ClojureScript
入門ClojureScript
About Reauire.js
About Reauire.js
BaseScriptについて
BaseScriptについて
PowerShell de Azure
PowerShell de Azure
Similar to ライブラリにあらず! 〜Google Closure Toolsの事始め〜
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
TDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
Nobuhiro Sue
Haikara
Haikara
jewel12
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
Nobuhiro Sue
実践Go ツールの作成から配布まで
実践Go ツールの作成から配布まで
Yusuke Miyake
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
Miho Nakano
Pycon2014 django performance
Pycon2014 django performance
hirokiky
sbtマルチプロジェクトビルドの使いどころ
sbtマルチプロジェクトビルドの使いどころ
Kazuhiro Hara
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
tamtam180
Getting Started GraalVM (再アップロード)
Getting Started GraalVM (再アップロード)
tamtam180
アプリコンテスト
アプリコンテスト
Tomonori Yamada
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
kenjis
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
Satomi Tsujita
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
Ransui Iso
Jqm20120210
Jqm20120210
cmtomoda
G * magazine 0
G * magazine 0
Tsuyoshi Yamamoto
ocamloptの全体像
ocamloptの全体像
Kiwamu Okabe
G * magazine 1
G * magazine 1
Tsuyoshi Yamamoto
Similar to ライブラリにあらず! 〜Google Closure Toolsの事始め〜
(20)
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
TDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
Haikara
Haikara
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
実践Go ツールの作成から配布まで
実践Go ツールの作成から配布まで
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
Pycon2014 django performance
Pycon2014 django performance
sbtマルチプロジェクトビルドの使いどころ
sbtマルチプロジェクトビルドの使いどころ
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM (再アップロード)
Getting Started GraalVM (再アップロード)
アプリコンテスト
アプリコンテスト
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
Jqm20120210
Jqm20120210
G * magazine 0
G * magazine 0
ocamloptの全体像
ocamloptの全体像
G * magazine 1
G * magazine 1
More from Kazuya Hiruma
MESONプロジェクトから学ぶこれからのAR開発に必要なこと
MESONプロジェクトから学ぶこれからのAR開発に必要なこと
Kazuya Hiruma
PORTAL with Nreal in CES 2020 開発の学び @XR Hub
PORTAL with Nreal in CES 2020 開発の学び @XR Hub
Kazuya Hiruma
ARグラスで 魅力的な絵作り
ARグラスで 魅力的な絵作り
Kazuya Hiruma
AWE Nite ARKit3 Hackathon
AWE Nite ARKit3 Hackathon
Kazuya Hiruma
レイマーチ入門勉強会資料
レイマーチ入門勉強会資料
Kazuya Hiruma
MESONで手がけたARアプリ AR Developer Meetup #2
MESONで手がけたARアプリ AR Developer Meetup #2
Kazuya Hiruma
みんなレイ飛ばしてる?
みんなレイ飛ばしてる?
Kazuya Hiruma
VRゲーム制作楽しいよ! @UnityおとなのLT大会
VRゲーム制作楽しいよ! @UnityおとなのLT大会
Kazuya Hiruma
ElminaAR - Unity x ARKit 入門Meetup
ElminaAR - Unity x ARKit 入門Meetup
Kazuya Hiruma
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
Kazuya Hiruma
UnityでARKitハンズオン
UnityでARKitハンズオン
Kazuya Hiruma
すぐそこにある未来〜AR〜
すぐそこにある未来〜AR〜
Kazuya Hiruma
VRで酔わないコンテンツ作り
VRで酔わないコンテンツ作り
Kazuya Hiruma
WebVRコンテンツ制作入門
WebVRコンテンツ制作入門
Kazuya Hiruma
WebVRってこんなことできるよ!
WebVRってこんなことできるよ!
Kazuya Hiruma
そしてWebVR
そしてWebVR
Kazuya Hiruma
Unity入門ハンズオン
Unity入門ハンズオン
Kazuya Hiruma
WebVR 酔いづらいコンテンツの作り方
WebVR 酔いづらいコンテンツの作り方
Kazuya Hiruma
WebVRことはじめ
WebVRことはじめ
Kazuya Hiruma
集まっTail #5 LT
集まっTail #5 LT
Kazuya Hiruma
More from Kazuya Hiruma
(20)
MESONプロジェクトから学ぶこれからのAR開発に必要なこと
MESONプロジェクトから学ぶこれからのAR開発に必要なこと
PORTAL with Nreal in CES 2020 開発の学び @XR Hub
PORTAL with Nreal in CES 2020 開発の学び @XR Hub
ARグラスで 魅力的な絵作り
ARグラスで 魅力的な絵作り
AWE Nite ARKit3 Hackathon
AWE Nite ARKit3 Hackathon
レイマーチ入門勉強会資料
レイマーチ入門勉強会資料
MESONで手がけたARアプリ AR Developer Meetup #2
MESONで手がけたARアプリ AR Developer Meetup #2
みんなレイ飛ばしてる?
みんなレイ飛ばしてる?
VRゲーム制作楽しいよ! @UnityおとなのLT大会
VRゲーム制作楽しいよ! @UnityおとなのLT大会
ElminaAR - Unity x ARKit 入門Meetup
ElminaAR - Unity x ARKit 入門Meetup
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
UnityでARKitハンズオン
UnityでARKitハンズオン
すぐそこにある未来〜AR〜
すぐそこにある未来〜AR〜
VRで酔わないコンテンツ作り
VRで酔わないコンテンツ作り
WebVRコンテンツ制作入門
WebVRコンテンツ制作入門
WebVRってこんなことできるよ!
WebVRってこんなことできるよ!
そしてWebVR
そしてWebVR
Unity入門ハンズオン
Unity入門ハンズオン
WebVR 酔いづらいコンテンツの作り方
WebVR 酔いづらいコンテンツの作り方
WebVRことはじめ
WebVRことはじめ
集まっTail #5 LT
集まっTail #5 LT
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
1.
ライブラリにあらず! ∼Google
Closure Toolsの事始め∼ 面白法人カヤック HTMLファイ部 比留間和也
2.
自己紹介 • 面白法人カヤック HTMLファイ部所属 比留間 和也 •
最近はJSばっかりで、 あんまりHTML書いてません。
3.
ちょっと書きました すべての人に知っておいてほしい HTML5 & CSS3
の基本原則 すべての人に知っておいてほしい スタイルシートデザインの基本原則
4.
Google Closure Toolsとは
5.
Google Closure Toolsは、 いわゆる一般的なJavaScriptライブラリ
6.
7.
ではありません
8.
GCTは3種の神器
9.
• Google Closure
Library • Google Closure Compiler • Google Closure Template
10.
これら3つが組み合わさって初めて 「Google Closure Tools」の真価が発揮される
11.
Google Closure Template
12.
SoyToJsSrcCompiler.jarというファイルを使います
13.
14.
Buildする $ java -jar
SoyToJsSrcCompiler.jar --shouldProvideRequireSoyNamespaces --outputPathFormat simple.js simple.soy
15.
Buildする $ java -jar
SoyToJsSrcCompiler.jar --shouldProvideRequireSoyNamespaces --outputPathFormat simple.js simple.soy
16.
17.
Google Closure Compiler
18.
弊社社内でも最後の仕上げとして、圧縮する ために使われたりしています
19.
Compileする SRC = js/hoge.js
js/fuga.js COMBINE = js/hoge.prod.js COMPRESS = js/hoge.prod.min.js $(COMBINE) : $(SRC) cat $^ > $@ java -jar /Applications/gcc/compiler.jar --js $(COMBINE) --js_output_file $(COMPRESS) .PHONY: clean clean : rm -f $(COMBINE) $(COMPRESS) 弊社で使われているshell script
20.
Compileする SRC = js/hoge.js
js/fuga.js COMBINE = js/hoge.prod.js COMPRESS = js/hoge.prod.min.js $(COMBINE) : $(SRC) cat $^ > $@ java -jar /Applications/gcc/compiler.jar --js $(COMBINE) --js_output_file $(COMPRESS) .PHONY: clean clean : rm -f $(COMBINE) $(COMPRESS) 弊社で使われているshell script
21.
Google Closure Library
22.
Google Closure Toolsの中でもコア機能 Googleの集大成ともいえるライブラリ群
23.
24.
25.
Build $ python
./closure-library/closure/bin/build/ closurebuilder.py --root=./js --root=./closure-library --namespace="hoge" --output_mode=compiled --output_file=hoge.min.js --compiler_jar=/Applications/gcc/compiler.jar -f "--define=goog.DEBUG=false" 圧縮のレベルを指定するオプション #-f "--compilation_level=ADVANCED_OPTIMIZATIONS"
26.
Build $ python
./closure-library/closure/bin/build/ closurebuilder.py --root=./js --root=./closure-library --namespace="hoge" --output_mode=compiled --output_file=hoge.min.js --compiler_jar=/Applications/gcc/compiler.jar -f "--define=goog.DEBUG=false" 圧縮のレベルを指定するオプション #-f "--compilation_level=ADVANCED_OPTIMIZATIONS"
27.
• JavaScriptで手軽にクラスベース風の継承機能 を提供 • require的な各ファイルの依存関係を解決して くれるPythonベースのツール •
依存関係の解決から圧縮までをコマンドライ ン一発でやってくれるPythonベースのツール
28.
Google Closure Toolsは、 こうしたツール群を駆使してつくり上げる 巨大なフレームワーク
29.
ライブコーディング
30.
Appendix • Google Closure
Tools • Google Closure Library • Google Closure Templates • Google Closure Compiler • Google Closure compilerをオンラインで • Closure Libraryによるアプリ開発のはじめ方
31.
ご清聴ありがとうございました
Editor's Notes
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Download now