django-pipeline compiler for browserify, requires browserify to be installed.
Project description
django-pipeline-browserify is a compiler for django-pipeline (requires 16.9+). Making it really easy to use browserify with Django via pipeline.
To install it:
sudo npm install -g browserify pip install django-pipeline-browserify
And add it as a compiler to pipeline in your django settings.py:
PIPELINE = { # ... 'COMPILERS': ('pipeline_browserify.compiler.BrowserifyCompiler', ), # ... )
To add source maps during development (or any other browserify args):
if DEBUG: PIPELINE['BROWSERIFY_ARGS'] = ['-d']
Passing arguments as an array makes sure they are safely unambiguous, but the way browserify lets you pass nested arguments within brackets can make this very tedious:
# this is very unreadable, and hard to maintain! PIPELINE['BROWSERIFY_ARGS'] = ['--transform', '[', 'babelify', '--presets', '[', 'es2015', 'react', ']', '--plugins', '[', 'transform-object-rest-spread', 'transform-class-properties', ']', ']']
To avoid this, when you know that no individual argument has a space within it, simply split the arguments yourself:
# the easy way :-) PIPELINE['BROWSERIFY_ARGS'] = "--transform [ babelify --presets [ es2015 react ] --plugins [ transform-object-rest-spread transform-class-properties ] ]".split()
To set environment varaibles specific to the browserify command:
PIPELINE['BROWSERIFY_ENV'] = {'NODE_ENV':'production'}
(Note that for an actual production build, this example is not sufficient. You’ll probably want to use a transform like loose-envify so the minifier can optimize out debug statements. Browserify doesn’t usually pass environment variables like that shown above into the compiled code; but it may effect the runtime behavior of browserify itself.)
To use a local install of the browserify command line utility (or if it is not in your PATH for some other reason), you can override the command used:
PIPELINE['BROWSERIFY_BINARY'] = "/custom/path/to/browserify" # ...or perhaps something like this: PIPELINE['BROWSERIFY_BINARY'] = os.path.join(REPO_ROOT, "node_modules/.bin", "browserify"),
Important: give your entry-point file a .browserify.js extension:
PIPELINE = { # ... 'javascript':{ 'browserify': { 'source_filenames' : ( 'js/entry-point.browserify.js', ), 'output_filename': 'js/entry-point.js', }, } }
To suggest a feature or report a bug: https://github.com/j0hnsmith/django-pipeline-browserify/issues
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
File details
Details for the file django-pipeline-browserify-0.6.1.tar.gz
.
File metadata
- Download URL: django-pipeline-browserify-0.6.1.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 472ec5130ae907a2a9b95e3bfc5344f9b4b2f08287438c5b0f3441a6b87d7dc8 |
|
MD5 | 71f1df7f8579d4feec0d2423cd8ac039 |
|
BLAKE2b-256 | 729f94e05cd4ad3c92b15b1fe668115a83e6fc765558a387bbcbe7f32868b2dd |