Django: автоматическое свертывание файлов css / js перед выпуском - PullRequest
25 голосов
/ 17 июня 2010

У меня следующий случай: я хочу использовать несжатые файлы js / css во время разработки (например, для отладки js), но на работе я хочу автоматически переключиться на минимизированные версии этих файлов.

какое-то простое решениеэто вставить в шаблон:

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

, но это требует вручную, при условии, что такой файл существует, и выполнять мини-манипуляции после изменения исходного файла.

Как вы этого добиваетесь в своих проектах?Есть ли какой-нибудь инструмент для этого?

Ответы [ 6 ]

18 голосов
/ 17 июня 2010

Вы пробовали http://code.google.com/p/django-compress/?

См. http://djangopackages.com/grids/g/asset-managers/ для довольно полного списка доступных управляющих активами для Django ...

Есливы уже используете django-compress, вам стоит взглянуть на обновление до django-pipel, который является хорошо поддерживаемым форком, с множеством новых функций.Я призываю всех, кто использует django-compress для переключения на django-pipe вместо: * документация по django-pipeline

17 голосов
/ 08 декабря 2011

Джанго-компресс больше не поддерживается. Попробуйте https://github.com/cyberdelia/django-pipeline вместо.

8 голосов
/ 18 июня 2010

Я использовал webassets , и до сих пор я очень доволен.Что мне действительно нравится в этом, так это то, что вы по-прежнему можете определять свои файлы CSS и JS внутри своих шаблонов, а не в конфигурации проекта.

Документацию можно найти по адресу: http://elsdoerfer.name/docs/webassets/

3 голосов
/ 22 декабря 2016

По состоянию на конец 2016 года эти ответы в основном устарели.

Проверьте здесь несколько вариантов: https://gitlab.com/rosarior/awesome-django#asset-management

На данный момент, Джанго-компрессор - хороший выбор, но есть варианты в зависимости от того, что вы хотите сделать. Я верю, что в наши дни веб-пакет также становится популярным.

0 голосов
/ 27 июля 2013

Только что выпустили проект с открытым исходным кодом, который следит за изменениями в каталогах и автоматически минимизирует JS, автоматически компилирует SASS / SCSS, запускает операции командной строки и т. Д.

Проверьте это на http://devWatchr.com/

Он запускается с использованием python и pyinotify в вашей системе во время разработки.

0 голосов
/ 01 августа 2010

Я написал этот Makefile для минимизации и объединения моих файлов JS и CSS.Это зависит от YUI Compressor JAR.После обновления файла вы все равно должны запустить make.Тем не менее, вы можете заставить его работать, когда сервер запускается и / или перезагружается, или настроить коммит-хук на вашем SCM.

Конечно, вам все еще нужен {% if not debug %}, но это небольшая цена для ИМО.

Показывает простое использование:

$ 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.
...