Skip to content
Snippets Groups Projects
Forked from AlekSIS® / Official / AlekSIS-App-Alsijil
Source project has a limited visibility.

Django-yarnpkg

Easy way to use yarnpkg with your Django project.

This is a fork of django-bower <https://github.com/nvbn/django-bower> by Vladimir Iakovlev.

Read full documentation on read-the-docs.

Installation

Install django-yarnpkg package:

pip install django-yarnpkg

Add django-bower to INSTALLED_APPS in your settings:

'django_yarnpkg',

Add staticfinder to STATICFILES_FINDERS:

'django_yarnpkg.finders.NodeModulesFinder',

Specify path to components root (you need to use an absolute path):

NODE_MODULES_ROOT = os.path.join(BASE_DIR, 'node_modules')

If you need, you can manually set the path to yarnpkg:

YARN_PATH = '/usr/bin/yarnpkg'

You can see an example settings file in example project.

Usage

Specify YARN_INSTALLED_APPS in settings, like:

YARN_INSTALLED_APPS = (
    'bootstrap@^4.4.1',
    'underscore@^1.6.1',
)

Download yarn packages with the management command:

./manage.py yarn install

Add scripts in the template, like:

{% load static %}
<script type="text/javascript" src='{% static 'jquery/dist/jquery.js' %}'></script>

In production you need to call yarnpkg install before collectstatic:

./manage.py yarn install
./manage.py collectstatic

If you need to pass arguments to yarnpkg, like --flat, use:

./manage.py yarn install -- --flat

You can call yarnpkg commands like info and update with:

./manage.py yarn info backbone
./manage.py yarn update

Python 3 support

django-yarnpkg supports python 3.3+