Text
Page: 1
Sinatra w/ Bower Masafumi Yokoyama 勉強会@Sinatra札幌 2015-09-19 Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 2
自己紹介 @myokoym 江別→札幌→東京 将棋(明日から大会!) Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 3
よろしくお願いします。 m(_ _)m Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 4
話すこと Sinatraを使ったWebアプリの JavaScriptパッケージ管理 Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 5
きっかけ RubyGemsっぽくJavaScript のライブラリを管理したい 手動ダウンロードつらい dependency hell Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 6
きっかけ Bowerを使うといいらしい Sinatraと一緒に使いたい Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 7
アジェンダ Bowerとは Sinatraと一緒に使うには Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 8
アジェンダ Bowerとは Sinatraと一緒に使うには Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 9
RubyとJavaScriptの パッケージ管理の対比 Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 10
おさらい RubyGems Bundler Rake Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 11
RubyGems Rubyのパッケージ管理のしく み APTやHomebrewなどのRuby版 ライブラリなどをコマンド一発 でインストールできる Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 12
Bundler プロジェクトで使うgemを管 理するしくみ バージョンを指定できる 開発環境と本番環境でずれるのを防 げる Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 13
Rake タスク管理ツール MakeのRuby版 ビルドやパッケージングなどを 自動化 Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 14
JavaScript npm Bower Grunt/gulp Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 15
npm JavaScript(Node.js)のパッ ケージマネージャ Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 16
npm パッケージ作成や登録 RubyGemsの機能 プロジェクトで使うバージョン の指定や依存関係の管理 Bundlerの機能 Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 17
npm パッケージ情報や依存関係は package.jsonに記述 RubyGemsでいう.gemspec BundlerでいうGemfile Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 18
npm デフォルトでローカルディレク トリにインストール node_modulesディレクトリ -gオプションでシステムのグロ ーバルに gem installのデフォルトはこちら Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 19
Bower Twitter社製のフロントエンド 用パッケージマネージャ パッケージ情報や依存関係は bower.jsonに記述 機能はほぼnpmと同じ Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 20
Bower デフォルトでローカルディレク トリにインストール bower_componentsディレクトリ システムのグローバルにインス トールすることはない Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 21
npmとBower 似ている Bowerはnpmを元に作られた 棲み分け npmはサーバーサイド(開発用ツー ルなど) Bowerはフロントエンド(ブラウザ に配信するもの) Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 22
Grunt/gulp タスク管理ツール Rake フロントエンドでは結構重要 Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 23
なぜ重要か 配信する必要があるため 必要なファイルだけ取り出したり 圧縮したり Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 24
対比表 JavaScript npm -g npm Bower Grunt/gulp Sinatra w/ Bower Ruby RubyGems RubyGems +Bundler RubyGems +Bundler Rake Powered by Rabbit 2.1.9
Page: 25
ハーフタイム 進捗どうですか? Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 26
アジェンダ Bowerとは Sinatraと一緒に使うには Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 27
やり方 生のbower.jsonを使う Rails Assetsを使う アセットパイプライン 別のアプリケーション Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 28
生のbower.jsonを使う 1. bower_componentsにイン ストール 2. publicにコピー Rakeタスクに組み込むなど Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 29
生のbower.jsonを使う メリット Bowerの機能をそのまま使える デメリット パッケージ管理のしくみが複数でき てしまうので複雑になる Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 30
Rails Assetsを使う Rails向けのアセット管理手法 https://rails-assets.org/ アセットパイプライン対応 内部でBowerを使っている Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 31
アセット ブラウザに配信するファイル JavaScript、CSS、画像など publicに配置するもの Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 32
アセットパイプライン アセットを配信用に変換 コンパイル(.sass、.coffeeなど) 結合 通信回数を減らす 圧縮(minify) 通信量を減らす Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 33
Sinatra× アセットパイプライン Sinatra AssetPack https://github.com/rstacruz/sinatra-assetpack Sinatra Asset Pipeline https://github.com/kalasjocke/sinatra-asset- pipeline Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 34
Sinatra× Rails Assets rails-assets-sinatra https://github.com/rails-assets/rails-assets- sinatra Sinatra Asset Pipelineを使用 Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 35
rails-assets-sinatra how to easily integrate Sinatra with Bower. Node.js is not required. Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 36
rails-assets-sinatra how to easily integrate Sinatra with Bower. Node.js is not required. Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 37
キタ━(゚∀゚)━!! Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 38
デモ Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 39
別のアプリケーション SinatraはWeb APIとして使う フロントエンドはMVCフレー ムワークなどを使う Bowerでパッケージ管理 Sinatra w/ Bower Powered by Rabbit 2.1.9
Page: 40
まとめ Bowerを使うとフロントエンド のパッケージ管理が楽になる Sinatraと使うならrails- assets-sinatraのやり方がおす すめ 別アプリも有力な選択肢 Sinatra w/ Bower Powered by Rabbit 2.1.9