Wolna kompilacja assets

W projekcie mam bardzo dużo kodu coffeescript rozsianego w setkach plików. Do tego używamy plugin https://github.com/maccman/sprockets-commonjs
Konfiguracja assets w moim projekcie wygląda następująco (config/development.rb):

[code]

Do not compress assets

config.assets.compress = false

Expands the lines which load the assets

config.assets.debug = false[/code]
Czasmi (nie jest to regułą) w przypadku drobnej zmiany w dowolnym plików lub przełączenie się na inny branch całe assets są kompilowane od początku i muszę długo czekać na przeładowanie się strony:

Started GET "/assets/application.js" for 127.0.0.1 at 2013-01-11 19:39:45 +0100 Compiled sprockets/commonjs.js (0ms) (pid 18142) Compiled jquery.js (2ms) (pid 18142) Compiled jquery_ujs.js (0ms) (pid 18142) Compiled underscore.js (0ms) (pid 18142) Compiled backbone.js (0ms) (pid 18142) Compiled backbone_rails_sync.js (0ms) (pid 18142) Compiled handlebars.runtime.js (0ms) (pid 18142) Compiled moment.js (0ms) (pid 18142) ... i tak dalej
Ustawienie config.assets.debug = true niestety nie wiele pomaga, bowiem przy każdym requescie muszę czekać na załadowanie się setek plików z javascriptem.
Pytanie brzmi: jak uzyskać złoty środek?
Jak optymalnie skonfigurować assets dla dużego projektu?

bundle exec rake assets:precompile:nondigest

Do prekompilacji assetów w środowisku deweloperskim. Przy okazji szybsze niż normalne rake assets:precompile (nie liczy md5).

Jeśli robisz deploy Capistrano to jeszcze to bardzo sympatyczne:

namespace :deploy do namespace :assets do task :precompile, :roles => :web, :except => { :no_release => true } do from = source.next_revision(current_revision) if capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets/ app/assets/ | wc -l").to_i > 0 run %Q{cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} #{asset_env} assets:precompile:primary} else logger.info "Skipping asset pre-compilation because there were no asset changes" end end end end
Przydaje się szczególnie gdy robisz częste deploy i nie chcesz za każdym razem czekać na kompilację.

Najbardziej boli mnie nie deploy, tylko czekania na przeładowanie assets za każdym razem jak coś zmienię w kodzie. Produktywność bardzo na tym cierpi.

@Tomash niestety twoje rozwiązanie ma jedną poważną wadę, muszę wywoływać tę komendę za każdym razem jak coś zmienię. Spróbuję przeprowadzić z guargem i tym taskiem, jako pomoże to podzielę się spostrzeżeniami.