django-bridge v0.2.0
django-bridge
Integrated packages list:
- gulp
- browserify
- gulp-notify
- sass
- less
Installation
Because of nature of this packages you must install to pieces of it using node's npm and python's pip both. You need to install python package first. Assuming that you using python virtualenv.
pip install django-bridgeAfter that you must add django_bridge into INSTALLED_APPS list in django
settings. Also you must have BASE_DIR setting (added by default in latest
django) and add static dir where django-bridge will put bundles into
STATICFILES_DIRS setting (see configuration section).
After that you may use command bridge init to install node and
related packages into your python virtualenv using nodeenv. It will not work
outside virtualenv because perfoms global gulp install (in this case refer to
manual install section)
python manage.py bridge initManual install
You may wish to install nodejs manually.
We recommend you to not install node packages globally. You may choose from
NVM and nodeenv (you will prefer first if you are from node world). nodeenv
allows you to install node packages into your python virtualenv.
nodeenv -p --prebuilt -n 0.11.16
npm install --save-dev django-bridgeAlso you must install gulp globally:
npm install -g gulpYou must create gulpfile.js then with following content:
require('django-bridge');Usage
After installing you can create endpoints for your scripts and styles in any
django app in static/scripts and static/styles respectevly.
Script files must have '.js' or '.coffee' extensions and styles are '.css' or '.scss'.
Endpoint ignored if filename started with _ or equal to index (with any
extension).
You may import scripts and styles from any other installed django apps inside yours using django app name.
After that you may reffer generated files using template tag in django:
{% bridge "scripts/<endpoint>.coffee" %}It will be replaced with gulp-buster generated scripts.
Configuration
You can change package behaivor via package.json in your application.
Available settings and their defaults listed below.
All configuration options must be located in package.json under the 'bridge' key.
Example:
...
"bridge": {
"django_path": "./",
"static_path": "./static",
"editor": "subl %(file)s:%(line)d:%(column)d",
"vendors": ["backbone"]
},
...django_path
manage.py script path. Relative to package.json.
static_path
Where to put bundles. Also you must add this directory to STATICFILES_DIRS
in django. It will have a highest priority over application files. Relative to
package.json file.
editor
Which command must be executed when user click on error notification. You may wish to use placeholders:
%(file)s— full file path%(line)d— line of the file%(column)d— error position in string
By default it is a Sublime Text subl command as in example above.
vendors
List of npm packages which must be bundled in separate vendors.js bundle.
Roadmap
1.0
- JSX
- less
- sprites
- bower?
0.2
- static compression
- live reload
0.1
- open file at pos on notification click
- gulp-notify
- gulp-buster
- vendors bundle
manage.py bridge initcommandbridgetemplate tag- configuration