
Многим уже надоело лазить по куче сайтов и скачивать js библиотеки и плагины. Да и таскать когда-то скачанные, но уже давно протухшие версии не очень круто. Эти проблемы решает bower.
Но с ним тоже многое нужно делать вручную: следить за
components каждого проекта, руками дёргать bower install. После pip с requirements.txt это делать даже как-то лень.Поэтому представляю вам django-bower, который берёт на себя установку и обновление bower пакетов по списку из
settings и прозрачную работу с staticfiles. Установка
Для начала у вас должен быть установлен bower, инструкция есть на официальном сайте.
Вам нужно поставить пакет
django-bower из pypi:pip install django-bower
Добавить приложение в
INSTALLED_APPS в settings:'djangobower',
Подключить его в
STATICFILES_FINDERS:'djangobower.finders.BowerFinder',
И прописать путь до
components — место, где хранятся установленные пакеты. Путь должен быть абсолютным и существовать:BOWER_COMPONENTS_ROOT = '/PROJECT_ROOT/components/'
Вы можете посмотреть пример настроек в demo проекте.
Использование
Для использования пакетов пропишите их в
BOWER_INSTALLED_APPS в settings, например:BOWER_INSTALLED_APPS = (
'jquery#2',
'underscore',
)
И установите их с менедж командой
bower_install, впоследствии можно использовать её для обновления пакетов:./manage.py bower_install
Теперь можно подключить скрипт в шаблоне:
{% load static %}
<script type="text/javascript" src='{% static 'jquery/jquery.js' %}'></script>
В продакшене
bower_install нужно делать перед collectstatic:./manage.py bower_install
./manage.py collectstatic
Для получения
BOWER_INSTALLED_APPS с фиксированными версиями пакетов используйте bower_freeze:./manage.py bower_freeze
