Upgrade to Pro — share decks privately, control downloads, hide ads and more …

なぜSprocketsを捨てるべきか / Why do I want to throw awa...

joe_re
June 27, 2016

なぜSprocketsを捨てるべきか / Why do I want to throw away sprockets?

西日暮里.rb 2周年記念 LT
https://nishinipporirb.doorkeeper.jp/events/46772

joe_re

June 27, 2016
Tweet

More Decks by joe_re

Other Decks in Technology

Transcript

  1. なんで捨てたいのか( 技術寄り) フロントエンド側のツー ルの成熟 (babel, brawsarify, webpack, etc...) Gem 化されていることが前提になる

    ( フロントの進化に追従していくのは気合が必要) Sprockets を通すことによるビルド速度の低下 独自依存解決(require) つらいし、 ロックインされたくない
  2. なんで捨てたいのか( 技術寄り) フロントエンド側のツー ルの成熟 (babel, brawsarify, webpack, etc...) Gem 化されていることが前提になる

    ( フロントの進化に追従していくのは気合が必要) Sprockets を通すことによるビルド速度の低下 独自依存解決(require) つらいし、 ロックインされたくない
  3. Speockets の依存解決方法 # b a r . j s .

    c o f f e e # i n i t i a l i z e 的なやつで先に ` w i n d o w . f r e e e = { } ` をやっておく c l a s s B a r e x t e n d s f r e e e . F o o h o g e M e t h o d : - > # s o m e p r o c e s s e s w i n d o w . f r e e e . B a r = B a r / / f o o b a r . j s / / = r e q u i r e f o o / / = r e q u i r e b a r require の順番を絶対に死守しないと動かないぞ
  4. ともすれば人はこんなerb を作ってしまう # e r b _ s a m

    p l e . j s . e r b e x p o r t d e f a u l t c l a s s E r b S a m p l e { h o g e ( ) { r e t u r n < % = a s s e t _ p a t h ( ' h o g e . g i f ' ) % > ; } }
  5. たとえば ライブラリのバー ジョンアップがGem に依存してしまう ES2015­modules(file 単位でrequire) ができない unit test を走らせたいだけなのに、

    わざわざRails 立ち上げないといけないの ライブラリは全てnpm で管理して、JS のエコシステムに 乗りたい人生だった