Submit Search
Upload
Sprocketsを捨てたい
•
23 likes
•
12,595 views
Masato Noguchi
Follow
西日暮里.rb一周年記念 LT
Read less
Read more
Software
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 30
Download now
Download to read offline
Recommended
僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!
Masato Noguchi
RailsのRailから解放される始めの一歩
RailsのRailから解放される始めの一歩
Masato Noguchi
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
Masato Noguchi
Ruby on Rails の特徴とそのエコシステム
Ruby on Rails の特徴とそのエコシステム
Tomoya Kawanishi
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
Hirata Tomoko
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考える
Hirata Tomoko
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュ
Kenji Mori
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
Recommended
僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!
Masato Noguchi
RailsのRailから解放される始めの一歩
RailsのRailから解放される始めの一歩
Masato Noguchi
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
Masato Noguchi
Ruby on Rails の特徴とそのエコシステム
Ruby on Rails の特徴とそのエコシステム
Tomoya Kawanishi
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
Hirata Tomoko
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考える
Hirata Tomoko
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュ
Kenji Mori
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
Takafumi ONAKA
Railsバージョンアップを段階的に行うためにRails3/4並行稼動させる仕組みを作ってる話
Railsバージョンアップを段階的に行うためにRails3/4並行稼動させる仕組みを作ってる話
Masayuki Morita
Ruby on Rails 入門
Ruby on Rails 入門
Yasuko Ohba
すこやかRails
すこやかRails
Takafumi ONAKA
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
Kanako Kobayashi
WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築
Hirata Tomoko
Rails あるある
Rails あるある
Ryunosuke SATO
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
Hiroshi Oyamada
RSpecしぐさ
RSpecしぐさ
Takafumi ONAKA
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
Kazuya Numata
Rails+Markdownでなにかつくる
Rails+Markdownでなにかつくる
Hirata Tomoko
RubyでGUIアプリケーションを書く
RubyでGUIアプリケーションを書く
Misao X
Ember コミュニティとわたし
Ember コミュニティとわたし
Ryunosuke SATO
Next GAE Heroku を使って 3分でRailsアプリをリリース
Next GAE Heroku を使って 3分でRailsアプリをリリース
よしだ あつし
片手間JS on Rails
片手間JS on Rails
Ryunosuke SATO
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
Takuro Sasaki
SunspotではじめるSolr入門
SunspotではじめるSolr入門
Takao Baba
Bundler 2 の胎動
Bundler 2 の胎動
Koichi ITO
20101009 gunma.web#2 スタパさんをつくるはなし
20101009 gunma.web#2 スタパさんをつくるはなし
ivoryworks .
gulp-sprockets、あるいはRailsのAssetsのビルドについて
gulp-sprockets、あるいはRailsのAssetsのビルドについて
yo_waka
開発スピードの減速と再加速
開発スピードの減速と再加速
Ken-ichi Kudo
More Related Content
What's hot
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
Takafumi ONAKA
Railsバージョンアップを段階的に行うためにRails3/4並行稼動させる仕組みを作ってる話
Railsバージョンアップを段階的に行うためにRails3/4並行稼動させる仕組みを作ってる話
Masayuki Morita
Ruby on Rails 入門
Ruby on Rails 入門
Yasuko Ohba
すこやかRails
すこやかRails
Takafumi ONAKA
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
Kanako Kobayashi
WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築
Hirata Tomoko
Rails あるある
Rails あるある
Ryunosuke SATO
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
Hiroshi Oyamada
RSpecしぐさ
RSpecしぐさ
Takafumi ONAKA
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
Kazuya Numata
Rails+Markdownでなにかつくる
Rails+Markdownでなにかつくる
Hirata Tomoko
RubyでGUIアプリケーションを書く
RubyでGUIアプリケーションを書く
Misao X
Ember コミュニティとわたし
Ember コミュニティとわたし
Ryunosuke SATO
Next GAE Heroku を使って 3分でRailsアプリをリリース
Next GAE Heroku を使って 3分でRailsアプリをリリース
よしだ あつし
片手間JS on Rails
片手間JS on Rails
Ryunosuke SATO
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
Takuro Sasaki
SunspotではじめるSolr入門
SunspotではじめるSolr入門
Takao Baba
Bundler 2 の胎動
Bundler 2 の胎動
Koichi ITO
20101009 gunma.web#2 スタパさんをつくるはなし
20101009 gunma.web#2 スタパさんをつくるはなし
ivoryworks .
What's hot
(20)
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
Railsバージョンアップを段階的に行うためにRails3/4並行稼動させる仕組みを作ってる話
Railsバージョンアップを段階的に行うためにRails3/4並行稼動させる仕組みを作ってる話
Ruby on Rails 入門
Ruby on Rails 入門
すこやかRails
すこやかRails
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築
Rails あるある
Rails あるある
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
RSpecしぐさ
RSpecしぐさ
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
Rails+Markdownでなにかつくる
Rails+Markdownでなにかつくる
RubyでGUIアプリケーションを書く
RubyでGUIアプリケーションを書く
Ember コミュニティとわたし
Ember コミュニティとわたし
Next GAE Heroku を使って 3分でRailsアプリをリリース
Next GAE Heroku を使って 3分でRailsアプリをリリース
片手間JS on Rails
片手間JS on Rails
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
SunspotではじめるSolr入門
SunspotではじめるSolr入門
Bundler 2 の胎動
Bundler 2 の胎動
20101009 gunma.web#2 スタパさんをつくるはなし
20101009 gunma.web#2 スタパさんをつくるはなし
Viewers also liked
gulp-sprockets、あるいはRailsのAssetsのビルドについて
gulp-sprockets、あるいはRailsのAssetsのビルドについて
yo_waka
開発スピードの減速と再加速
開発スピードの減速と再加速
Ken-ichi Kudo
React.js + Reduxで作るSPA
React.js + Reduxで作るSPA
Shohei Saeki
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
Yoshifumi Kawai
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Yoshifumi Kawai
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Yoshifumi Kawai
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for Unity
Yoshifumi Kawai
Angular1&2
Angular1&2
Kenichi Kanai
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#
Yoshifumi Kawai
いい感じのフロントエンド開発環境を作ってみた
いい感じのフロントエンド開発環境を作ってみた
Hayashi Yuichi
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Yoshifumi Kawai
Roslynで体験してみるC#スクリプト #cs_fukuoka
Roslynで体験してみるC#スクリプト #cs_fukuoka
Yuta Matsumura
アルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったこと
Satoshi KOBAYASHI
Html5 history api
Html5 history api
景智 張
Curing Shopper Boredom
Curing Shopper Boredom
Lisa Roberts
AWS Roadshow Herbst 2013: Beschleunigen Sie Entwicklungs- und Test-Szenarien ...
AWS Roadshow Herbst 2013: Beschleunigen Sie Entwicklungs- und Test-Szenarien ...
AWS Germany
Conférence_20150928_Linkedin
Conférence_20150928_Linkedin
Ollivier Monferran
Shepherd Elementary School Community Meeting Flyer
Shepherd Elementary School Community Meeting Flyer
DC Department of General Services
Proform 505 cst Treadmill Buying Guide
Proform 505 cst Treadmill Buying Guide
Sharon Hamlin
برندسازی بین المللی احمدرضا اشرف العقلایی Dba7-mahan- کارآفرینی
برندسازی بین المللی احمدرضا اشرف العقلایی Dba7-mahan- کارآفرینی
Ashrafologhalaei Ahmadreza
Viewers also liked
(20)
gulp-sprockets、あるいはRailsのAssetsのビルドについて
gulp-sprockets、あるいはRailsのAssetsのビルドについて
開発スピードの減速と再加速
開発スピードの減速と再加速
React.js + Reduxで作るSPA
React.js + Reduxで作るSPA
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for Unity
Angular1&2
Angular1&2
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#
いい感じのフロントエンド開発環境を作ってみた
いい感じのフロントエンド開発環境を作ってみた
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Roslynで体験してみるC#スクリプト #cs_fukuoka
Roslynで体験してみるC#スクリプト #cs_fukuoka
アルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったこと
Html5 history api
Html5 history api
Curing Shopper Boredom
Curing Shopper Boredom
AWS Roadshow Herbst 2013: Beschleunigen Sie Entwicklungs- und Test-Szenarien ...
AWS Roadshow Herbst 2013: Beschleunigen Sie Entwicklungs- und Test-Szenarien ...
Conférence_20150928_Linkedin
Conférence_20150928_Linkedin
Shepherd Elementary School Community Meeting Flyer
Shepherd Elementary School Community Meeting Flyer
Proform 505 cst Treadmill Buying Guide
Proform 505 cst Treadmill Buying Guide
برندسازی بین المللی احمدرضا اشرف العقلایی Dba7-mahan- کارآفرینی
برندسازی بین المللی احمدرضا اشرف العقلایی Dba7-mahan- کارآفرینی
Similar to Sprocketsを捨てたい
20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料
慎平 仁藤
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
serverless
serverless
Kohei Misu
レガシーなアプリにWeb apiを実装してなみだ目になったのでちょっといろいろ教えてください
レガシーなアプリにWeb apiを実装してなみだ目になったのでちょっといろいろ教えてください
Isamu Suzuki
【テックリンク】平日の夜1時間で学ぶ!RubyonRails初心者ハンズオン
【テックリンク】平日の夜1時間で学ぶ!RubyonRails初心者ハンズオン
linkbal
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話
Takeuchi Yuichi
Web技術勉強会 20120609
Web技術勉強会 20120609
龍一 田中
Osc2008 Opensuse Moonlinx
Osc2008 Opensuse Moonlinx
Kazuhisa Hara
Play frameworkの概要
Play frameworkの概要
Shuhei Kaneko
Railsから学ぶRESTfulなuri設計
Railsから学ぶRESTfulなuri設計
Kanako Kobayashi
Gruntの罪と罰
Gruntの罪と罰
kamiyam .
Ruby on Railsではじめるrspecテスト
Ruby on Railsではじめるrspecテスト
Kanako Kobayashi
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
Clojureの発表など
Clojureの発表など
Kikuta Go
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座
都元ダイスケ Miyamoto
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1
Takuya Mukohira
2015 12-19-ruby rails
2015 12-19-ruby rails
Hiroshi Oyamada
2015 07-04-ruby rails
2015 07-04-ruby rails
Hiroshi Oyamada
Web技術勉強会 第33回
Web技術勉強会 第33回
龍一 田中
Camp report for_kwskrb
Camp report for_kwskrb
rojiuratech
Similar to Sprocketsを捨てたい
(20)
20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
serverless
serverless
レガシーなアプリにWeb apiを実装してなみだ目になったのでちょっといろいろ教えてください
レガシーなアプリにWeb apiを実装してなみだ目になったのでちょっといろいろ教えてください
【テックリンク】平日の夜1時間で学ぶ!RubyonRails初心者ハンズオン
【テックリンク】平日の夜1時間で学ぶ!RubyonRails初心者ハンズオン
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話
Web技術勉強会 20120609
Web技術勉強会 20120609
Osc2008 Opensuse Moonlinx
Osc2008 Opensuse Moonlinx
Play frameworkの概要
Play frameworkの概要
Railsから学ぶRESTfulなuri設計
Railsから学ぶRESTfulなuri設計
Gruntの罪と罰
Gruntの罪と罰
Ruby on Railsではじめるrspecテスト
Ruby on Railsではじめるrspecテスト
Play jjug2012spring
Play jjug2012spring
Clojureの発表など
Clojureの発表など
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1
2015 12-19-ruby rails
2015 12-19-ruby rails
2015 07-04-ruby rails
2015 07-04-ruby rails
Web技術勉強会 第33回
Web技術勉強会 第33回
Camp report for_kwskrb
Camp report for_kwskrb
Sprocketsを捨てたい
1.
Sprocketsを捨てたい!!
2.
自己紹介 • 名前: joe-re(じょうあー、じょー) •
freeeという会社でクラウド会計作ってます。 • ぶっちゃけRubyよりJavaScriptの方が好き。
3.
そもそもSprocketsってなん だっけ • Ruby製のアセットのプリプロセッサ • Rails3.1から導入 •
AltJSやSassなどのcompile • concat、minify、uglify、md5フィンガープリント • 依存関係の整理がしやすくなる • develop 時にはminifyしない、など難しい設定いらずでいい感じに動 く
4.
なんで捨てたいの • 最近はフロントエンドのツールが充実してる • ライブラリなど基本的にGem化されていないと使えない (導入コスト高い) •
全てを1つのファイルにConcatするので、JavaScriptの読 み込みに時間がかかる(Turbolinkうまく使えばあるいは?) • Rails5 から Rails API が本体に入る • Sprocketsに依存しないことで、Railsが死んだ時にも対応 できるようになる
5.
理想型から考える
6.
妄想 • もはや、RailsはJSON返すAPIサーバでよくね? • いいねー。フロントとサーバは完全にリポジトリ分けて、別々にCIし ようか。 •
うんうん。JSONスキーマ定義して、Rails側ではそれ使ってAPIのバリ デーションして、フロント側はレスポンスモックして動かしたり、テ ストしたりするの良さそう。 • おkおk。インテグレーションテストはSelenium Web Driver使って、 マルチブラウザまで書いていく感じかな。 • :+1:
7.
現実 • jQueryのDOM操作多すぎ。心折れそう。SPAとか正直無 理な感じする。 • わかるー。そもそも複雑で人類の理解できる範囲超えて るし。コンポーネント指向っていってもなー。どこから 手をつけて良いやら…。 •
ていうかそもそもフロントのテストなんて書いてないしな! インテグレーションテストなんてもちろ(rya • :cry:
8.
Sprocketsと 共に生きる方法を模索する
9.
とりあえずjs分割(before) • 初期状態のapplication.js # … //=
require jquery //= require jquery_ujs //= require_tree . fooページにだけ必要なfooとかbarページで必要な barとかまとめられてしまう。
10.
とりあえずjs分割(after) • lib.js //= require
jquery //= require jquery_ujs • hoge.js //= require hoge • bar.js //= require bar
11.
bowerの資産を使う • bower-rails • https://github.com/rharriso/bower-rails •
これでgemになってないライブラリも使える • (とはいえbowerオワコン感がある…)
12.
ビルドの成果物をSprocketsに のせる • フロントでビルドした成果物をapp/assets配下に 出力するようにする • md5フィンガープリント、minify、concat、uglify などは従来通りSprocketsさんにやってもらう •
フロントに特化したビルドをしつつ、面倒な部分 はSprocketsに任せられるので扱いやすい
13.
Front Engineering on Sprockets •
react-rails • mithril-rails • angularjs-rails • sprockets-es6 • gulp-rails-pipeline
14.
Sprocketsを捨てさる
15.
方針 • Rails は
JSON を返すWebAPIにする。 • ルーティング、レンダリングなどは全てフロ ントで処理する。 • ビルドはgruntやgulpなどのフロントで使い易 いツールへ移行する。
16.
フロントのビルド成果物はどこ に配置するか • 素直に Public配下が良いと思う。 •
開発中もインクリメンタルビルドで、差分だ けうまいこと Public ディレクトリに放り込ん でいく。 • 開発時にはuglifyやminifyしない。
17.
proxy サーバを立てて開発を円 滑にしたい • livereload
など、フロント側でやりたいことがた くさんある! • Rails 側は一度立てれば、あとは意識しなくて良く なる。(動かなければプロセス確認したり、再起動 したりする程度) • browser-sync すごく便利!
18.
proxyサーバを立てた図 Rails Server localhost:3000 # endpoints GET
/api/v1/friends public directory friends.js Proxy Server loalhost:8080 友達一覧が見たい! localhost:8080/friends
19.
完全に捨てるのむずい (他にいい方法あれば教えて ください。。)
20.
知見
21.
最近書いたgulp.coffee • 最近ちょうどRailsアプリケーションでgulp導 入する機会があったので紹介 • Sprockets完全廃止はできてない •
ビルド結果をapp/assets配下に出力して、 Sprocketsにのせる方式
22.
build tasks
23.
server & watch
tasks
24.
所感
25.
移行するにあたってmd5フィンガー プリントをどうにかするのは難関 • フロント側でビルドすると、そのままでは asset_pathヘルパーが効かなくなる。 • これさえどうにかできれば感はある。
26.
Sprocketsの requireディレクティブうざい • browserifyと共存できないので、置き換える ときに少しずつできない。 • 少なくともファイル単位でやらないといけな い。
27.
gemにassets含まれてるやつ ら、このやろう! • 単純にgem化されてるライブラリなら大抵はnpmにもあるから困ら ない。 • けど、generateでview作る系のやつはassetsが含まれてたりする。 •
さすがにgulpタスクでgemファイルの中身をさらうのはなー。 • そのgem使うのをやめるのが良い。無理ならgemから抜き出してリ ポジトリにコミットするか。(バージョン管理が面倒なのでやりたく ない。。)
28.
今の気持ち
29.
少し角が取れました • そこまで完全に捨てることに拘る必要はないかも しれない(ある程度徐々に移行していくことは可能) • SprocketsはSprocketsでいいところはある(とりあ えずはそう思うことにしよう) •
とはいえ新しく作るアプリケーションなら Sprocketsに頼らなくても良さそう
30.
ありがとうございました
Download now