SlideShare a Scribd company logo
1 of 57
フロントエンドのツール
Yeomanを
勘違いしていた
2013/06/29 #daiNagoyaJS vol.6
13年6月29日土曜日
自己紹介
13年6月29日土曜日
自己紹介
• ぎりぎりばうあー @girigiribauer
13年6月29日土曜日
自己紹介
• ぎりぎりばうあー @girigiribauer
• なごや
13年6月29日土曜日
自己紹介
• ぎりぎりばうあー @girigiribauer
• なごや
• 仕事でフロントエンド的なこと
13年6月29日土曜日
自己紹介
• ぎりぎりばうあー @girigiribauer
• なごや
• 仕事でフロントエンド的なこと
• 2013年6月、無職してみました
13年6月29日土曜日
勘違い
13年6月29日土曜日
勘違い
13年6月29日土曜日
勘違い
• 初期のころに見せてもらった Yeoman の
デモで、最初のコマンドを打つと
大量にファイルを読み込むのを見て、
勝手に「これ使えないなー」と判断してた
13年6月29日土曜日
勘違い
• 初期のころに見せてもらった Yeoman の
デモで、最初のコマンドを打つと
大量にファイルを読み込むのを見て、
勝手に「これ使えないなー」と判断してた
• Gruntと連携するのは知ってたけど、Grunt
だけでいいんじゃないの?と思っていた
13年6月29日土曜日
勘違い
• 初期のころに見せてもらった Yeoman の
デモで、最初のコマンドを打つと
大量にファイルを読み込むのを見て、
勝手に「これ使えないなー」と判断してた
• Gruntと連携するのは知ってたけど、Grunt
だけでいいんじゃないの?と思っていた
• ただ特定のファイル群を最初に用意してくれ
るだけ(scaffolding)だと思っていた
13年6月29日土曜日
間違ってた
• 少し調べてみたら可能性を感じた
ので、どんな風に使えそうか
調べてみたのを共有します
• あまり時間とれなかったので
簡単な資料でごめんなさい・・・
13年6月29日土曜日
Yeomanの前に
• 事前知識をさらっと
• Node.js(略)
• npm
• Grunt
• bower
13年6月29日土曜日
npm: Node Package
Manager
• Perlの cpan, Rubyの gem に相当
• Node.js のパッケージ管理
• 開発ツールとしてもよく使う
• npm install -g foobar で
グローバルにインストール
(-g なしでプロジェクトごと)
13年6月29日土曜日
Grunt: JavaScript Task
Runner
• lintしたりビルド走らせたり
テスト走らせたり
• 最小化したり単一ファイル化したり
画像のスプライト化したり
• npmで grunt-foobar みたいなのが
大量に公開されてる
13年6月29日土曜日
bower: A package
manager for the web
• npm install -g bower で入れて
さらにその上で動く
• HTML / CSS / JavaScript 中心の
パッケージ管理
• bower install foobar
• 名前が気に入ってる
13年6月29日土曜日
Yeoman
13年6月29日土曜日
Yeoman
ちなみに今 Yeoman 1.0(beta)ですが、
1.0 より前の仕様は全然知りません
13年6月29日土曜日
13年6月29日土曜日
インストールなど
• node, npmが入っている前提で
• npm install -g yo grunt-cli bower
• Yeoman (yo)
• Grunt (grunt-cli)
• bower
13年6月29日土曜日
勘違いしてたところ1
13年6月29日土曜日
勘違いしてたところ1
1.npm で generator (scaffolding) が
公開されてる
13年6月29日土曜日
勘違いしてたところ1
1.npm で generator (scaffolding) が
公開されてる
2.npm search yeoman-generator で
generator を探せる
13年6月29日土曜日
勘違いしてたところ1
1.npm で generator (scaffolding) が
公開されてる
2.npm search yeoman-generator で
generator を探せる
3.generator-foobar は Yeoman から
generator として使える
(yo foobar のようなコマンドで)
13年6月29日土曜日
generator いろいろ
• generator-angular
• generator-backbone
• generator-ember
• generator-jquery(jQueryプラグイン用)
• generator-chrome-extension(extension作
る用)
13年6月29日土曜日
さらにいろいろ
• generator-webapp(HTML5 Boilerplate, jQuery,
Modernizr, RequireJS, CSS autoprefixerてんこもり)
• generator-wordpress(対話的に入力するとWPに
必要なPHPファイル一式とテーマの骨組みまで用意してくれる)
• generator-dotfiles(githubにdotfilesを公開)
13年6月29日土曜日
generator を使った
scaffolding
13年6月29日土曜日
generator を使った
scaffolding
• 大まかな流れ
13年6月29日土曜日
generator を使った
scaffolding
• 大まかな流れ
1.npm search yeoman-generator
13年6月29日土曜日
generator を使った
scaffolding
• 大まかな流れ
1.npm search yeoman-generator
2.npm install -g yeoman-foobar
13年6月29日土曜日
generator を使った
scaffolding
• 大まかな流れ
1.npm search yeoman-generator
2.npm install -g yeoman-foobar
3.yo foobar
13年6月29日土曜日
簡単なscaffoldingのデモ
13年6月29日土曜日
※動かなかったときのための保険用キャプチャ
13年6月29日土曜日
13年6月29日土曜日
13年6月29日土曜日
13年6月29日土曜日
13年6月29日土曜日
13年6月29日土曜日
13年6月29日土曜日
13年6月29日土曜日
13年6月29日土曜日
generator を使った
scaffolding
• 必要十分な足場としてのファイルが
コマンド1つで用意される
• generator が npm で公開できる
仕組み
13年6月29日土曜日
勘違いしてたところ2
13年6月29日土曜日
勘違いしてたところ2
• generatorは当然自分で作れる
13年6月29日土曜日
勘違いしてたところ2
• generatorは当然自分で作れる
• 気に入る generator が無くても
自分で作れる、npm に公開も可能
13年6月29日土曜日
勘違いしてたところ2
• generatorは当然自分で作れる
• 気に入る generator が無くても
自分で作れる、npm に公開も可能
• generatorを作るgenerator、
generator-generator がある
13年6月29日土曜日
generator-generator
• npm install -g generator-generator
13年6月29日土曜日
generator-bauer を作る
13年6月29日土曜日
generator-bauer を作る
• yo bauer って打つだけで
自分用のばうあーコマンドで
scaffolding が・・・!
13年6月29日土曜日
generator-bauer を作る
• 全部で4ステップ
1.同名のディレクトリを作る
2.generator-generator で生成して
必要に応じてカスタマイズ
3.リンク貼る
4.yo bauer
13年6月29日土曜日
generator-bauer(1)
• mkdir generator-bauer
• cd generator-bauer/
• ※後でnpm としてシンボリックリン
ク貼るので、ディレクトリは同じ名前
にする
13年6月29日土曜日
generator-bauer(2)
• yo generator
=> generator 用のファイル一式
• package.json, app/index.js あたりが
npm の中心的なファイル
• もちろんそのまま動くし、
app/index.js を修正すれば挙動変わる
13年6月29日土曜日
generator-bauer(3)
• npm link
• 自分の場合、/usr/local/share/npm/
lib/node_modules/generator-bauer
にシンボリックリンク貼られる
• node のモジュールのパスが通る
13年6月29日土曜日
generator-bauer(4)
• (別の場所で)
mkdir bauer && cd bauer/
ディレクトリ名は違ってもOK
• yo bauer
=> generator-bauer のファイル一式
が出来る
13年6月29日土曜日
まとめ
• Yeoman はフロントエンドのツール
じゃなくてインフラだった
しかも汎用性高い
• generator の公開までしなくても、
npm link でリンク貼って
yo foobar とかで動かすような、
自作 generator の方法もお手軽
• ちょっと使ってみる気になったかも
13年6月29日土曜日
参考URL
• Yeoman
http://yeoman.io/
http://yeoman.io/generators.html
下は generator-generator の説明
• Grunt
http://gruntjs.com/
• bower
http://bower.io/
• WEBアプリケーションビルド・ テストツール YEOMAN
http://www.slideshare.net/kamiyam/ss-15731663
• [日本語訳]Yeoman App Generatorsの書き方
http://qiita.com/sys1yagi/items/da002b32b6663faaa705
13年6月29日土曜日
参考URL
• Yeoman generator path/naming issue with npm link when
gen dir is not "generator-_____"
https://github.com/yeoman/yeoman/issues/1075
※ディレクトリ名が generator-_____じゃない時に動かない
• EditorConfig
http://editorconfig.org/
• EditorConfig でエディタの設定も共有しよう
http://dev.hageee.net/21
日本語だといちばんまとまってた
13年6月29日土曜日

More Related Content

More from girigiribauer

黒い画面超入門 - tmux を使ってみよう
黒い画面超入門 - tmux を使ってみよう黒い画面超入門 - tmux を使ってみよう
黒い画面超入門 - tmux を使ってみようgirigiribauer
 
JSHint を自分好みにする話
JSHint を自分好みにする話JSHint を自分好みにする話
JSHint を自分好みにする話girigiribauer
 
CSS の Flexible Box Layout がヤバい
CSS の Flexible Box Layout がヤバいCSS の Flexible Box Layout がヤバい
CSS の Flexible Box Layout がヤバいgirigiribauer
 
Webアプリのマークアップ、どうすればいいの?
Webアプリのマークアップ、どうすればいいの?Webアプリのマークアップ、どうすればいいの?
Webアプリのマークアップ、どうすればいいの?girigiribauer
 
WebRTC + Web Audio API = スーパーサイヤ人
WebRTC + Web Audio API = スーパーサイヤ人WebRTC + Web Audio API = スーパーサイヤ人
WebRTC + Web Audio API = スーパーサイヤ人girigiribauer
 
Raphael.jsを使ってSVGをモーフィングさせてみた失敗の記録
Raphael.jsを使ってSVGをモーフィングさせてみた失敗の記録Raphael.jsを使ってSVGをモーフィングさせてみた失敗の記録
Raphael.jsを使ってSVGをモーフィングさせてみた失敗の記録girigiribauer
 
WebRTCでドラゴンボールごっこ
WebRTCでドラゴンボールごっこWebRTCでドラゴンボールごっこ
WebRTCでドラゴンボールごっこgirigiribauer
 
Webサイトのようには作れない!Webアプリ設計の考え方
Webサイトのようには作れない!Webアプリ設計の考え方Webサイトのようには作れない!Webアプリ設計の考え方
Webサイトのようには作れない!Webアプリ設計の考え方girigiribauer
 
a-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまでa-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまでgirigiribauer
 

More from girigiribauer (9)

黒い画面超入門 - tmux を使ってみよう
黒い画面超入門 - tmux を使ってみよう黒い画面超入門 - tmux を使ってみよう
黒い画面超入門 - tmux を使ってみよう
 
JSHint を自分好みにする話
JSHint を自分好みにする話JSHint を自分好みにする話
JSHint を自分好みにする話
 
CSS の Flexible Box Layout がヤバい
CSS の Flexible Box Layout がヤバいCSS の Flexible Box Layout がヤバい
CSS の Flexible Box Layout がヤバい
 
Webアプリのマークアップ、どうすればいいの?
Webアプリのマークアップ、どうすればいいの?Webアプリのマークアップ、どうすればいいの?
Webアプリのマークアップ、どうすればいいの?
 
WebRTC + Web Audio API = スーパーサイヤ人
WebRTC + Web Audio API = スーパーサイヤ人WebRTC + Web Audio API = スーパーサイヤ人
WebRTC + Web Audio API = スーパーサイヤ人
 
Raphael.jsを使ってSVGをモーフィングさせてみた失敗の記録
Raphael.jsを使ってSVGをモーフィングさせてみた失敗の記録Raphael.jsを使ってSVGをモーフィングさせてみた失敗の記録
Raphael.jsを使ってSVGをモーフィングさせてみた失敗の記録
 
WebRTCでドラゴンボールごっこ
WebRTCでドラゴンボールごっこWebRTCでドラゴンボールごっこ
WebRTCでドラゴンボールごっこ
 
Webサイトのようには作れない!Webアプリ設計の考え方
Webサイトのようには作れない!Webアプリ設計の考え方Webサイトのようには作れない!Webアプリ設計の考え方
Webサイトのようには作れない!Webアプリ設計の考え方
 
a-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまでa-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまで
 

Recently uploaded

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (9)

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

フロントエンドのツール Yeoman を勘違いしていた