
Многим уже надоело лазить по куче сайтов и скачивать 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