つかってみよう!yeoman 〜riaビルドツール超入門+α〜

55
Yeoman RIA ビルドツール超入門+α JS MEET UP Vol.1 2013.6.29 Bathtimefish 村岡 正和 つかってみよう!

Upload: masakazu-muraoka

Post on 15-Jan-2015

1.339 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

YeomanRIA ビルドツール超入門+α

JS MEET UP Vol.12013.6.29

Bathtimefish 村岡 正和

つかってみよう!

Page 2: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

自己紹介

Webアプリケーション開発 IT業務システム設計/開発Webサービス導入/事業戦略コンサルティング

HTML5-WEST.jp代表 / 京都GTUG / CSS Nite in OSAKA / 神戸ITフェスティバル実行委員など

むらおか まさかず

村岡正和 @bathtimefish

http://html5-west.jp/

HTML5-WEST.jpHTML5 JavaScript中国拳法 Python 主夫になりたい

炊事 Google Apps

Page 3: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

監修しました。

実例ごとの実装例がたくさん書いてあります。ウェブサイト制作やCMSの運用時に便利です。

好評販売中!!

Page 4: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

マークアップ部発足!

html5j.org

初代 部長になりました。

Page 5: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

<htmlday>

<htmlday> 凸撃生放送舞台裏 Photoレポート:世界のITエキスパートたちを捕獲! 凸撃インタビュー - @IT

http://bit.ly/ZGGQA3

Page 6: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

今日のおはなし

HTML5でイマドキっぽいWebサイトやWebアプリをつくるときにいろいろメンドイことがあって、

Page 7: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

今日のおはなし

メンドイことがいい感じに自動的になったりしたらめんどくなくていいんだけどナンかいいのない?

Page 8: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

今日のおはなし

それ、Yeomanでできるよ。というおはなし。

Yoemanつかったことない人向けにカンタンな紹介をします。あと、実用的なこともすこし。

Page 9: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

おはなしの流れ

•制作でめんどうなこといろいろあるよね•セットアップ•Yeomanを構成するツール•実際に使ってみる •とりあえず覚えておくコマンド•応用編 Tips

Page 10: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

制作でめんどうなこといろいろあるよね?

Page 11: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

コード書く前の準備いろいろ

• ディレクトリ構成• ローカルWebサーバー• クロスプラットフォームなページのスケルトン。ベストプラクティスなやつ。

• いいかんじのライブラリとかプラグインさがすの

etc...

Page 12: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

コード書き中のいろいろ

• Save Reload Save Reload Save Reload...• CoffeeとかSassとかのコンパイル• テストの実行• 最適化、軽量化• ライブラリやフレームワークのアップデート

etc...

Page 13: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

このオッサンがテキトーにやります。

Page 14: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Yeoman

Page 15: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

http://yeoman.io/

Page 16: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
Page 17: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Yeoman’s service

デキるオッサン

い ざ と い う と き の 際 立 っ た 働 き

Page 18: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

こんな人にモロ刺さります。

• 制作テンプレ持ってない。つーか作るのメンドイ• 最近JavaScript書いてない。Coffee依存症• 最適化・軽量化に細かいこだわりはない。いい感じにやってほしい

• Sass最高ヒャッハー!• もうCompassでいいです• もうBootstrapでいいです

こんなの

Page 19: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

まずはつかってみる

Page 20: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

セットアップ

Page 21: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

黒い画面で、

Page 22: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

npm install -g yo grunt-cli bower

※ grunt0.3以前をインストールしている場合、アンインストールしておく。

Page 23: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

...と、そのまえに入れておくもの。

node.js (>=0.8.0)

ruby

compass

※ compass はgemで、node.jsは nodebrewが個人的にオススメhttp://compass-style.org/https://github.com/hokaccha/nodebrew

Page 24: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Yeomanを構成するツール

yo grunt bower

scaffolding preview, build, test package management

Page 25: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Yo

•Yeomanのプロジェクトを生成する$ yo webapp

angular, backbone, ember, chromeapp...様々なフレームワークのscaffoldingが可能。HTML5 Boilerplate, Gruntfile.js, component.json, node_modulesの自動配置。

Page 26: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Bower

•JSライブラリのパッケージマネージャ$ bower install underscore

install, search, list, update...JSライブラリ、jQueryプラグインなどを検索してapp/componentsに自動インストール。既存ライブラリの管理に便利。

Page 27: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Grunt

•JSベースの作業自動化ツール$ grunt server

server, build, test, clean...様々な作業を自動化、ローカルWebサーバー起動、ファイル更新監視、リリースビルド、テストetc...

制作時の中核的ツール。はっきりいって神!

Page 28: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

実際につかってみるとわかるけど、

裏ではGruntが相当がんばっている!

コーディング中にお世話になるのはほとんどGrunt

Page 29: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Gruntfile.js

詳しくは公式で学びましょうhttp://gruntjs.com/

Page 30: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

あと実は最初、、、

Bower要らないと思ってました

サーセン!

トリも食ってみるとウマかったです

Page 32: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

まずはこれだけ覚えよう!

$ yo webapp

$ grunt server

はじめる前のじゅもん リリースのじゅもん

$ grunt build

or

$ grunt server:dist

まずは Designing in the Browserを快適に楽しんでみるといいよ!

Page 33: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

YeomanでAMD

Asynchronous Module Definition

Page 34: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

RequireJSをインクルードしてwebappを生成すると、JSはモジュール化されたファイル構成で出力される。

•main.js•app.js

モジュールの読み込み、依存関係を記述する(require)

モジュール本体(define)

AMDについては以下を読むといいhttp://requirejs.org/docs/why.htmlhttp://requirejs.org/docs/whyamd.html

Page 35: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

RequireJSをとはつまり、

C言語の import とかRubyの require みたいに

JavaScriptで外部JavaScriptファイルの読み込みを実現するライブラリ

Page 36: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

main.js

モジュールのパスを指定

モジュールの依存関係を定義

モジュールを利用した処理を記述

Page 37: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

app.js

モジュールの処理を記述

Page 38: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

app.js を変更してjqueryを使えるようにする

Page 39: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

応用編

Page 40: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

1.モジュール化したCoffeeをグローバルにコンパイルする

Page 41: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

YeomanはCoffeeScriptを自動的にコンパイルする。便利なんだけど、CoffeeScriptはデフォルトで即時関数化するので複数のCoffeeファイル間でグローバル空間を利用するようなプログラムはコンパイル後に動かなくなる。

※ RequireJSとか使ってうまいことやらない場合のお話です。

Page 42: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Coffeeはいつもこんなかんじ

これはこれでいいんだけど複数Coffeeファイルで生成したインスタンスをグローバルで共有して楽をしたい場合とかちょっとアレ。

Page 43: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Gruntfile.js coffee:dist ブロックにオプションを追加する

参考: https://github.com/gruntjs/grunt-contrib-coffee#readme

以前ブログに書きました Yeoman v0.9時点の話だけど。http://goo.gl/hc4Em

Page 44: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

2.REST API サーバーを同時に開発する

Page 45: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Yeomanはプレビュー用localhostサーバーを立てる。便利なんだけど、JSONベースのREST APIサーバーを同時に開発する場合は別サーバーを立てないといけない。その場合クロスオリジンになるのでそのまんまだとajax通信ができなくて不便。

Page 46: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

やり方

長いのでブログに書きました。http://goo.gl/SojUc

Page 47: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

そしたら、

@kamiyamさんがもっと便利なの書いてくれたhttp://bit.ly/13r1xj5

ぜったいこっちをつかうべき!

Page 48: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

こうが、、、

Web Browser

Yoman Preview Server(localhost:9000)

API Server(localhost:3000)

✘ajax request

Page 49: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

こうなるイメージ

Web Browser

Yeoman Preview Server(localhost:9000)

API Server(localhost:3000)

Proxy Server(localhost:8000)

ajax request

Page 50: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Yo, Grunt, Bower, (node.js) の相互依存性が低いので工夫次第でいくらでも便利にカスタマイズできそう。:)

Page 51: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

まとめ

Page 52: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Yeomanを使うと、 Webアプリ開発効率がアップすると思います。

Page 53: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

ぜひ使ってみてください!

Page 54: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

happy����������� ������������������  coding����������� ������������������  :)

Page 55: つかってみよう!Yeoman 〜riaビルドツール超入門+α〜

Thanks.