Django: auto minifying des fichiers css/js avant la sortie
J'ai le cas suivant: je veux utiliser non compressé js/css fichiers en cours de développement (debug js par exemple), mais sur la production que je veux changer automatiquement de minimisé les versions de fichiers.
certains la solution la plus simple est de mettre dans votre modèle:
<script src="some_js.{% if not debug %}min.{% endif %}js"....
mais ce besoin d'manully prévoyant que ce fichier existe et de faire minifaction manullay après la date de modification des fichiers.
Comment voulez-vous accomplir cela dans vos projets? Est-il un outil pour cela?
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé http://code.google.com/p/django-compress/ ?
Django-compresser n'est plus maintenu. Essayez https://github.com/cyberdelia/django-pipeline à la place.
J'ai été en utilisant webassets et jusqu'à présent je suis très satisfait. Ce que j'aime vraiment, c'est que vous êtes toujours en mesure de définir votre CSS et JS fichiers à l'intérieur de vos modèles, au lieu de dans la configuration du projet.
Documentation peut être trouvée à: http://elsdoerfer.name/docs/webassets/
À la fin de 2016, ces réponses sont pour la plupart obsolètes.
Vérifier ici quelques options:
https://gitlab.com/rosarior/awesome-django#asset-management
Pour le moment, django-compresseur est un bon choix, mais il existe des alternatives en fonction de ce que vous voulez faire. Je crois webpack est de plus populaire ces jours-ci en tant que bien.
J'ai écrit ce Makefile de rapetisser et de les enchaîner mes fichiers CSS et JS. Il dépend de la YUI Compressor JAR.
Après la mise à jour d'un fichier, vous devez toujours exécuter
make
bien. Néanmoins, vous pouvez le faire exécuter au démarrage du serveur et/ou recharge, ou l'installation d'un commit-crochet sur votre SCM.Bien sûr, vous avez encore besoin de la
{% if not debug %}
, mais c'est un petit prix à payer de l'OMI.Montrant l'utilisation simple:
Vient de sortir un projet open-source qui regarde les répertoires pour les changements et les auto-minifies JS, auto-compile SASS/SCSS, exécute des opérations de ligne de commande, etc.
Vérifier à http://devWatchr.com/
Il s'exécute à l'aide
python
etpyinotify
sur votre système au cours du développement.