2014-10-21 21 views
6

Sto cercando un bundler/minifier da utilizzare nel mio sito ColdFusion. Ho cercato per oltre un'ora e ho trovato solo un plugin adatto per cfWheels. Sfortunatamente, siamo collegati a framework-one a questo punto, quindi non possiamo usare quel plugin.ColdFusion Bundler & Minification

Qualcuno può consigliare un mezzo per il raggruppamento & minifying nostro js/css con ColdFusion FW1?

Sto pensando di "prendere in prestito" dal bundler di asp.net System.Web.Optimization, ma mi sembra che mi uccida troppo.

Grazie!

+1

Hai visto CFStatic (https://github.com/DominicWatson/cfstatic)? Fa tutto questo e altro. –

+1

CFStatic è bello, ma non ho mai avuto il caldo e il rischio di usarlo - sembra che la minimizzazione dei file JS e CSS non sia qualcosa che la CF dovrebbe fare. Ho usato il nodo con grunt per minificare i file vengono aggiornati. Ho un codice che carica i file "grezzi" quando passo un parametro URL per aiutarmi a eseguire il debug quando necessario. –

+0

Quale server web stai usando? Io uso IIS e sto utilizzando IISpeed ​​(PageSpeed ​​per IIS) per concat + Minare automaticamente i file JS/CSS senza dover modificare alcun codice su alcun progetto. Le ottimizzazioni vengono eseguite dal server Web dopo che ColdFusion ha terminato la generazione del contenuto HTML. (NOTA: è estremamente utile per la pubblicazione live/in tempo reale/memorizzata nella cache, ma non è consigliabile per "raggruppare" per ridistribuire). –

risposta

4

Di recente abbiamo adottato questa stessa decisione. Alla fine, abbiamo optato per l'utilizzo di Gulp, un gestore di attività basato su Javascript che utilizzi in fase di sviluppo e la mia raccomandazione è che tu faccia lo stesso. Gulp ha un'enorme community e userbase e tonnellate di plugin. Può guardare i file per le modifiche man mano che si sviluppano e automaticamente concatenare, minimizzare (e circa 1000 altre cose - vedere http://gulpjs.com/plugins/).

Utilizzando un plugin Gulp chiamato gulp-rev, i file vengono rinominati automaticamente, come file-k34jzkl3.css, per bloccare le cache del browser quando vengono apportate modifiche. Usando un altro plugin gulp, gulp-manifest, generiamo automaticamente un file JSON che mappa il file CSS originale con il nome cachebusted (ad esempio "file.css": "file-k34jzkl3.css") e quindi abbiamo un semplice CFC che traduce quei nomi nel posto giusto nel nostro HTML. Questo è ciò che il nostro file JSON manifesto appare come:

{ 
    "baseline.css": "/global/baseline-82bcd2ab92.css", 
    "user.css": "/global/user-0d1d32170c.css" 
} 

E allora il nostro markup CFML appare così:

<link rel="stylesheet" href="#application.asset.getAsset("baseline.css")#"> 

che genera output HTML come:

<link rel="stylesheet" href="/global/baseline-82bcd2ab92.css"> 

ho creato un repo con il codice su https://github.com/ghidinelli/assets.cfc