Skip to main content

A bridge from Webpack to Django

Project description

Django Webpack Bridge

Test, Publish PyPI npm PyPI - Django Version npm peer dependency version PyPI - Python Version PyPI - License

Creates a bridge from webpack to django.

How to Use

  1. Add django-webpack-bridge to setup.py or pyproject.toml, and package.json.

  2. Add the plugin to webpack.config.js

    const DjangoBridgePlugin = require('django-webpack-bridge');
    module.exports = {
        ...,
        plugins: [
            ...,
            new DjangoBridgePlugin(),
        ],
    }
    

    django-webpack-bridge will use the variables from module.exports.output

  3. Add the following to settings.py

    INSTALLED_APPS += [
        'webpack_bridge',
    ]
    STATICFILES_DIRS = [
        '{same as module.exports.output.path from webpack.config.js}',
    ]
    
  4. In the template.html

    {% load webpack_bridge %}
    {% render_webpack_entry 'entry point name' js='defer' %}
    

Settings

BRIDGE_SETTINGS = {
    # Name of the manifest file
    'manifest_file': 'manifest.json',
    # Boolean to turn caching on and off
    'cache': not settings.DEBUG,
    # Timeout duration for the cache
    'cache_timeout': 86400,  # 1 Day
    # Namespace for the cache
    'cache_prefix': 'webpack_manifest',
    # Maps a tag group to a group of tags
    'group_to_extensions': {
        'script': ('js', ),
        'style': ('css', ),
    },
    # Maps a tag group to a html tag
    'group_to_html_tag': {
        'script': '<script src="{path}" {attributes}></script>',
        'style':
            '<link rel="stylesheet" type="text/css"'
            + ' href="{path}" {attributes}>',
    },
    # Time between updaing the manifest from the file while compiling
    'compiling_poll_duration': 0.5,
}

group_to_extensions and group_to_html_tag combine to create a multi-key map from a group of file extensions to a html tag. Eg. (js, jsx) -> <script src="{path}" {attributes}></script>

path: Will be replaced with the bundle path attributes: Will be replaced with any attributes specfied when when calling 'render_webpack_entry'. Attributes are grouped by file extension

The following settings can be passed to DjangoBridgePlugin

{
    path: 'defaults to module.exports.output.path',
    publicPath: 'defaults to module.exports.output.publicPath',
    fileName: 'defaults to manifest.json',
}

Development

Running tests

  1. Create and activate a python virtual env of your choice (optional).
  2. Run pip install .
  3. Run DJANGO_SETTINGS_MODULE=test_files.settings python -m django test webpack_bridge

Running the Demo

  1. Run docker-compose up --build
  2. Open localhost:8000

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-webpack-bridge-0.1.4.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

django_webpack_bridge-0.1.4-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file django-webpack-bridge-0.1.4.tar.gz.

File metadata

  • Download URL: django-webpack-bridge-0.1.4.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for django-webpack-bridge-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9675d7e65673186a6d59f43527d64df6735cbd7ddb9f045ca7052b1dc093e811
MD5 c496a4a2748615d214285f464149fe75
BLAKE2b-256 e9e68f54ee3d3b89b4874cc13bd4105b8a767f5a8170b288faedea815da14bd8

See more details on using hashes here.

File details

Details for the file django_webpack_bridge-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: django_webpack_bridge-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for django_webpack_bridge-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e2980984c3b19e5b106c89d3b361cefc9411478794e8b489b398859577aa3235
MD5 2250f647b6798742cdce43e455640ebe
BLAKE2b-256 56dfb166a716df36e3bba063ae120292d7ebebd63231101b5cdd2fe3b961a16a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page