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

Zarządzanie Assetami w Rails

Zarządzanie Assetami w Rails

Podsumowanie pięciu najbardziej powszechnych sposobów na zarządzanie assetami w aplikacjach Railsowych.

Filip Bartuzi

October 15, 2014
Tweet

Other Decks in Programming

Transcript

  1. #1 Manualna instalacja vendor/assets/ Przeciw: ! - Zależności między bibliotekami

    nie są rozwiązane.! - Kłopotliwe aktualizacje.! - Powielanie tych samych plików między projektami.! - Czasochłonna instalacja.! - Problem ze ścieżkami do plików.! ! Za:
 - Brak zależności bower/bundler/npm.
  2. #2 rubygems.org Ruby Gems Za:! + Używa Bundlera (zależności, require

    w sprockets).! + Wszystko w jednym pliku Gemfile.! + Łatwo i szybko.! ! Przeciw:! - Zwykle nie są aktualne.! - Wersja gema != wersja biblioteki.! - Czasochłonne dla opiekuna Gema.! - Każdy Gem opakowuje bibliotekę inaczej.!
  3. #3 bower.io Bower Za:
 + Rozwiązywanie zależności.! + Zawsze najnowsze

    wersje.! ! Przeciw:! - Brak bezpośredniej integracji z Rails.! - Kłopotliwa konfiguracja (Rails i Bower)! - Dodatkowy proces przy budowaniu projektu.! - Zależności Node, npm i git.
  4. #4 42dev/bower-rails Gem Bower + Rails Za:! + DSL (domain

    specific language)! + Ułatwiona konfiguracja z Railsami…! ! Przeciw:
 - … ale wciąż czasochłonna.! - Żonglowanie rake-taskami.
  5. #5 rails-assets.org Rails-Assets! Za:! + Brak vendor/assets.! + Poprawne wersjonowanie.!

    + Wszystkie zalety Bundlera.! + Brak dodatkowych kroków (bundle).! + Używane na produkcji bez zarzutów.! + Łatwa instalacja i konfiguracja.
 + Open Source!
  6. source 'https://rubygems.org'! + source 'https://rails-assets.org'! ! gem 'rails', '~> 4.0.0'!

    ! group :assets do! gem 'sass-rails'! gem 'uglifier'! gem 'coffe-rails'! + gem 'rails-assets-bootstrap'! + gem 'rails-assets-angular'! + gem 'rails-assets-leaflet'! end
  7. ❖ application.js
 
 //= require_self
 + //= require bootstrap
 +

    //= require angular
 + //= require leaflet
 //= require_tree .! ❖ style.csss
 /*
 *= require self
 + *= require bootstrap
 + *= require leaflet
 *= require_tree .
 */