2010-06-17 13 views
24

Ho un caso seguente: Voglio usare file js/css non compressi durante lo sviluppo (per eseguire il debug di js ad esempio) ma in produzione voglio passare automaticamente a versioni miniate di quei file .Django: auto minifying file css/js prima del rilascio

qualche semplice soluzione è quella di mettere nel vostro template:

<script src="some_js.{% if not debug %}min.{% endif %}js".... 

ma questo richiede manully a condizione che tale file esiste e fare minifaction manullay dopo il cambio di file originale.

Come lo realizzi nei tuoi progetti? C'è qualche strumento per questo?

+0

https://www.djangopackages.com/grids/g/asset-managers/ –

risposta

17

Hai provato http://code.google.com/p/django-compress/?

Vedere http://djangopackages.com/grids/g/asset-managers/ per un elenco abbastanza completo dei gestori patrimoniali disponibili per Django ...

Se già sta già utilizzando django-comprimere, si dovrebbe dare un'occhiata a l'aggiornamento a Django gasdotto, che è una forcella ben tenuta, con molte nuove funzionalità. Incoraggio tutti a chi sta usando django-impacco per passare alla Django-gasdotto invece: * django-pipeline documentation

+0

Perfetto! Molte grazie! – dzida

+11

django-compress è stato sostituito da [django-pipeline] (http://django-pipeline.readthedocs.org/en/latest/index.html) secondo il loro [sito] (http://code.google.com/p/django-compress /) –

+0

Questa applicazione non è più mantenuta :-( –

8

Sto usando webassets e finora sono molto soddisfatto. Quello che mi piace davvero, è che sei ancora in grado di definire i tuoi file CSS e JS all'interno dei tuoi modelli, invece che nella configurazione del progetto.

La documentazione è disponibile all'indirizzo: http://elsdoerfer.name/docs/webassets/

+0

django-assets ha un nuovo nome: [webassets] (https://github.com/miracle2k/webassets) –

+0

ah, I ' Ho aggiornato la risposta di conseguenza – heyman

+1

Ciao heyman :) da tempo non ci vediamo. Stai ancora utilizzando webassets? E qual è la tua opinione su webassets vs django-pipeline? Difficoltà a decidere. Sono in grado di apprezzare le funzionalità di inlining del modello, ma la pipeline di django sembra avere una migliore gestione delle risorse non di codice come immagini e file flash. Mi sbaglio? I webassets gestiscono questi tipi di file con garbo? –

0

ho scritto this Makefile a minify e concatenare i miei JS e file CSS. Dipende dal JAR YUI Compressor. Tuttavia, dopo aver aggiornato un file, è comunque necessario eseguire make. Tuttavia, è possibile eseguirlo quando il server si avvia e/o ricarica, oppure impostare un hook di commit sul SCM.

Ovviamente è ancora necessario il {% if not debug %}, ma è un piccolo prezzo da pagare IMO.

Mostrando l'utilizzo semplice: non viene più mantenuta

$ make 
[css] static/css/first.css 
[css] static/css/second.css 
[css] static/css/third.css 
[css] static/css/and_so_on.css 
[tag] @import url("static/css/all.css"); 
[js] static/js/first.js 
[js] static/js/second.js 
[js] static/js/third.js 
[js] static/js/and_so_on.js 
[tag] <script type="text/javascript" src="static/js/all.js"></script> 
Done. 
-2

appena pubblicato un progetto open-source che guarda directory per le modifiche e auto-minifies JS, auto-compila SASS/SCSS, gestisce le operazioni della riga di comando, ecc

Check it out a http://devWatchr.com/

E ' viene eseguito utilizzando python e pyinotify sul sistema durante lo sviluppo.

Problemi correlati