第2部 タスク活動例 - apec.aichi-c.ed.jp · 第2部 . タスク活動例 . 第2部では,タスク活動例として,研究協力委員7名による36の授業実践を紹介する。
gumistudy#15 How to Automate Tasks grunt.jsを使ったタスク自動化
-
Upload
kenichiro-watanabe -
Category
Documents
-
view
1.439 -
download
0
Transcript of gumistudy#15 How to Automate Tasks grunt.jsを使ったタスク自動化
u—s‚øtKtÑ� @_kenichirow
÷™¶&gumiô��çÃ�èÃ�Ôê¼
°ì: HTML,SCSS,CoffeeScript°ì? : ¤—•«ł›�“¦PythonEÛ? : ^ŠClojure�Oµ�−vim , git
:Ÿ�¡�^Š”ô��çÃ�èØoìŽ
grunt�»
gumi�»grunt³�t∙q³›–−v
^Š”gruntRRìŽv
ox¶ß�¡w^Š”ô��çÃ�èØo»fiœo
)åa�qk�aweb¼ö�ÍßÓ��”�áÞawÒ—œ¶o
Backbone.js¶∙JS”MVCô�ߊ�ßË
SMACSS¶∙&|oCSSŁSÊ
ŸÜ»Ã³o—zßÎv•Ufl“¦∙�Ðs−�Ø)s¤ÞߊØo“�^‘”ÈowìáË•
.o«�åÒ¾éß•Šo<�ØÏþ�è�¾�³�−¶w)s¤
ÿÕØIo
Šøa|—|łq1;a�x−�»Šøa|–²žvœ�o|¡Ø›��!”©�O¶�)•ÓÂ
GRUNT.JS
GRUNT.JSNode.js�¢œ©¤¤ÜÕËŠøaâß�Ruby”RakeºJava”Ant�œ∼øq¶Ø”Ïþ�è�¾��$ grunt + u�\©¤ÜÕËù���
grunt.js
$ grunt sass
GRUNT”ïßÔ��•fio–gumi�»2013�7j‚v”^&⁄v0.4.1 ³³i0.3Kvœ0.4K�v¶ßNòw‾›–o−”��Ÿ�ä\©–¶oö�̾�»³s¶v›¤ß|—¡�ìáçö”oÏßè»Ó²�� : grunt/grunt Upgrading from 0.3 to 0.4
WHO USES GRUNT
cw�x−”ÜÕËÀ°ì)³Ł1ô¹¾�Gruntfile.(js/coffee)•o–Ïþ�è���×s�sass(compass)”Ï�ð¾�“›¤œ»
#Gruntfile.coffeemodule.exports = (grunt) -> config = compass: debug: options: environment: 'development' release: options: environment: 'production' grunt.loadNpmTasks 'grunt-contrib-compass' grunt.registerTask 'compile', 'compassコンパイルをするよ (DEBUG)', [ 'compass' ]
$ grunt compass:release
¶þ”§Í›«Œ¦©compass³Ÿ�•§z”�N°œ¶o... Î
�²�» c”ÜÕ˳—�Ł–Ñ•��¡−Zî”ô¹¾�”Nò³{−|–Šø�ÜÕË��
#release task grunt.registerTask 'release-compile', 'sassのコンパイルをするよ (RELEASE)', [ 'checkConflict' //コンパイルするファイルに未解消のコンフリクトがないかチェック 'clean:sass' //sassの一時ファイルを削除 'compass:release' //コンパイル 'clean:css' //古いcssを削除 'lightpng' //リポジトリに追加された画像を圧縮 'copy:sass' //アプリケーションのフォルダにcssをコピー 'csso' //cssoで最適化 'resizeImage' //画像のリサイズ 'cssImage1x' //android用のcss生成 'growl:sass' //おわったらgrowlで通知 ]
$ grunt release-compile
¶þ”§Í ƒ©H”»Ã�Ø�Ø›�»s�shell�Øoooµ∼Œ... Î
�|z\o
2013�•ÓÂ�ÕË�öçx¤z¶o
N¶DSLx¤z¶o
XML»<7”z'∼Œ¶o
GRUNTooø�©5|µ“JS�ÜÕËŠøa!ö�̾�n� Vz1000ıöcoffee+Ô�!©”lodash�9c;»Ã›z�Õç�¢�x−!ô¹¾�Nò³ç�Èß•|–�²”ÜÕ˳|¡”w–Øq�©¶o
GUMI�”GRUNT
qxz)¦–
coffee/scss”Ï�ð¾�iÜÕËöl•ô^¡−pł�|¤ÜÕË
•)v©−
×s�ß∙Øu¢£|¤��ßÕi•scss³Ï�ð¾�¡−ÜÕË
#release task grunt.registerTask 'release-compile', 'sassのコンパイルをするよ (RELEASE)', [ 'checkConflict' //コンパイルするファイルに未解消のコンフリクトがないかチェック 'clean:sass' //sassの一時ファイルを削除 'compass:release' //コンパイル 'clean:css' //古いcssを削除 'lightpng' //リポジトリに追加された画像を圧縮 'copy:sass' //アプリケーションのフォルダにcssをコピー 'csso'//cssoで最適化 'resizeImage' //画像のリサイズ 'cssImage1x' //android用のcss生成 'growl:sass' //おわったらgrowlで通知 ]
^Š¢›¤ÜÕË
GRUNT-LIGHTPNGcompass�Šø¢{\©−sprite«(»32bit”png�¡−âß�»m−¦∙�À‚>�ºß¤z¶o
«(”ò&º�g³{−|–Šø��¡©�...
git ls-tree��ýÔç�唫(”îáә߳<À
gp³}=|–json•|–ZB
$ git ls-tree -r HEAD
{ 'foobar1.png':{ 'hash' : 'e1456604d111dd4' }, 'foobar2.png':{ 'hash' : 'u12358fffgs84jc' }}
json�‚v”îáә߳ӡ−�ò&\©¤ô¹¾�w°v−”��əߕ‾©–�
�oqÜÕ˳¢ß—|¤
#画像をミニファイするメソッドminify = -> file = queue.shift() unless file _end() return
steps = [ -> _exec "./tools/bin/lightpng #{file} -32i #{file}",()-> _next steps.shift() ,-> _next minify ]
_next steps.shift()
o«o«>ø�Ïþ�è§v¶z–Ø���ßÕô•«(�¡−øq•¶ß—|¤Ł�¤|Ł�¤|
�t”�¬³›–o−ö�ÔÂËç»o—”�¬2fiíÁîÁØ—“—“Ä|–−^Ì ÜÕËØ�g|–o›–o−Šøa»q<c”Þߊ•¶©�•¶−∙xo–z−Ûî
GRUNTRR”o¬o¬
GRUNT-CONTRIBЙ”ö�̾�j
©ıł•Ønpm•u�\©¤ÜÕËw1000ıö
https://github.com/gruntjs/grunt-contrib
GRUNT-INITgrunt³³›¤ö�ÔÂË甿¶=³ä�ö�ßçvœ¢
{¡−âß�ÑvœŠ)�ÁŁ−þ »©³³q�Û
https://github.com/gruntjs/grunt-init
YEOMAN
grunt�bower¶∙³�áö|¤ô�ߊ�ßËÏþ�èÑo�ŽÝ�¶JS¼ö�”ö{w|\öw−
Ufl“¦∙YEOMAN way•pqÈowm−� ZZö{•|¤oþ »q‘oþ wIovØ
http://yeoman.io/
—�Ł
ß<»»o—|¤�ÍÓÂ�ÕË�öç»|ÄÎ
Š)�ÑvœC�z”�»¶z�ìÚ•H”<wo¤Ïßè³ÓÂ�ÕË�öçvœ|¡���Ñ��Øc−
�)”C”Ïßè³��|¤”�œ∼앶−
GRUNT = ô��çÃ�èåù�áð•�›–”|Ä
u°ß’∼÷mßw�q’‘o—|¤�