A bridge from Webpack to Django
Project description
Django Webpack Bridge
Creates a bridge from webpack to django.
How to Use
-
Add
django-webpack-bridge
tosetup.py
orpyproject.toml
, andpackage.json
. -
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 frommodule.exports.output
-
Add the following to
settings.py
INSTALLED_APPS += [ 'webpack_bridge', ] STATICFILES_DIRS = [ '{same as module.exports.output.path from webpack.config.js}', ]
-
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
- Create and activate a python virtual env of your choice (optional).
- Run
pip install .
- Run
DJANGO_SETTINGS_MODULE=test_files.settings python -m django test webpack_bridge
Running the Demo
- Run
docker-compose up --build
- 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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9675d7e65673186a6d59f43527d64df6735cbd7ddb9f045ca7052b1dc093e811 |
|
MD5 | c496a4a2748615d214285f464149fe75 |
|
BLAKE2b-256 | e9e68f54ee3d3b89b4874cc13bd4105b8a767f5a8170b288faedea815da14bd8 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2980984c3b19e5b106c89d3b361cefc9411478794e8b489b398859577aa3235 |
|
MD5 | 2250f647b6798742cdce43e455640ebe |
|
BLAKE2b-256 | 56dfb166a716df36e3bba063ae120292d7ebebd63231101b5cdd2fe3b961a16a |