Rake-Minify

Ciao a tutti,

Come alcuni di voi sapranno (quelli del CodeMotion, insomma :P),
nell’azienda per la quale lavoro (Mavigex) realizziamo applicazioni
mobile
multipiattaforma usando Sencha Touch e fruibili direttamente dal Web.
Questo significa che le applicazioni debbono essere estremamente veloci
a
caricare, e questo impone che i vari Javascript (qualche centinaio di
KB)
vengano minificati e compattati in un unico file.
Dal momento che spesso usiamo Sinatra per il backend, perch tipicamente
vengono usate API esterne, non potevamo usare molte delle ottime
librerie
per minificare i Javascript per RoR (e alcune di quelle che potevamo
usare
non davano le performance desidate, anzi peggioravano la situazione!).
Quindi ne ho realizzata una che pu anche essere eseguita offline, in
fase
di deploy (w capistrano!): rake
minifyhttps://github.com/mcollina/rake-minify.
Sono veramente poche righe di codice, fa quanto mi serve e niente pi:
ovviamente se ci sono suggerimenti/bug fatemeli sapere che li corregger
appena possibile!

Ciao,
Matteo

Ciao Matteo,
Un po’ di tempo fa avevo lo stesso problema, e ho creato:

E’ una gem che fornisce una serie di Rake tasks per comprimere e fare il
merge in un unico file, sia i javascripts che gli stylesheets. E’
framework/language agnostic, nel senso che pu essere usato per qualsiasi
altro progetto web, a patto di avere un runtime Ruby, ovviamente.
Inoltre fornisce qualche, funzionalit in pi per le applicazioni Rails.

Ecco un esempio di configurazione: Configuration example for https://github.com/jodosha/assets_packager · GitHub

Luca

Il giorno 08 aprile 2011 12:40, Luca G. [email protected] ha
scritto:

Carino, a saperlo prima non mi mettevo a scrivere rake-minify :). Non
che ci
abbia messo molto, stato abbastanza divertente.
L’approccio leggermente differente, uso un DSL invece che un file YAML,
ma
il concetto molto simile :).

Matteo

Ciao ancora,
Ho appena aggiornato assets_packager alla versione 0.0.2.

C’ una semplice feature in pi: aggiunge un timestamp agli url delle
immagini presenti negli stylesheets.
Esempio:
div#logo{ background: url(/images/logo.png) top left; }

Diventa:
div#logo{ background: url(/images/logo.png?1286374077) top left; }

In questo modo viene imitata la feature di ActionView che appende un
timestamp, quando viene usato l’helper #image_tag o #image_path.

Luca