Pull to refresh

Используем bower в django проектах с django-bower

Reading time 2 min
Views 15K


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

Articles