Package: django-gulp
django-gulpoverrides./manage.py runserverand./manage.py collectstaticso that they also run your gulp tasks.I’ve used this in conjunction with watchify and livereload in gulp, so
that my simple unadorned runserver automatically watches and compiles
new JavaScript files with browserify and live reloads new CSS that’s
been automatically compiled from SASS.InstallationAdd"django_gulp"to yourINSTALLED_APPSsetting like this,
making sure that it comes beforedjango.contrib.staticfiles(or
other apps that overriderunserverorcollectstaticin the list
if they’re listed):INSTALLED_APPS = (
    'django_gulp',
    ...
)Now when you run./manage.py runserveror./manage.py collectstaticyourgulptasks will run as well!SettingsGULP_CWDdefaults to the current working directory. Override it if
yourgulpfile.jsdoes not reside within the Django project’s
toplevel directory.GULP_PRODUCTION_COMMANDdefaults togulp build--production.GULP_DEVELOP_COMMANDdefaults togulp. Note that when specifying
this setting manually,GULP_CWDis ignored.Herokudjango-gulpworks on Heroku! You’ll just need to use buildpack-multi
and make sure your.buildpacksfile looks like this:https://github.com/heroku/heroku-buildpack-nodejs.git
https://github.com/heroku/heroku-buildpack-python.gitTo use buildback-multi set your configuration like so:$ heroku config:set BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-multi.gitExample output$./manage.pyrunserver>>>Startinggulp>>>gulpprocessonpid47863Performingsystemchecks...Systemcheckidentifiednoissues.May04,2015-18:27:52Djangoversion1.8.1,usingsettings'example.settings'Startingdevelopmentserverathttp://127.0.0.1:8000/QuittheserverwithCONTROL-C.[18:27:53]Usinggulpfile~/p/example/gulpfile.js[18:27:53]Starting'bower-install'...[18:27:54]Usingcwd:/Users/beau/p/example[18:27:54]Usingbowerdir:static/vendor[18:27:54]Starting'sass'...[18:27:54]Starting'watch'...[18:27:54]Finished'watch'after19ms[18:27:54]Starting'watchify'...[18:28:08]Watchingfilesrequiredbybundle-about.js[18:28:08]Bundlingbundle-about.js...[18:28:08]Watchingfilesrequiredbybundle-accounts-login.js[18:28:08]Bundlingbundle-accounts-login.js...[18:28:08]Watchingfilesrequiredbybundle-accounts-signup.js[18:28:08]Bundlingbundle-accounts-signup.js...[18:28:08]Watchingfilesrequiredbybundle-activities.js[18:28:08]Bundlingbundle-activities.js...[18:28:08]Finished'watchify'after14s[18:28:09]Finished'sass'after15s^C>>>Closinggulpprocess$./manage.pycollectstatic[18:32:54]Usinggulpfile~/p/example/gulpfile.js[18:32:54]Starting'bower-install'...[18:32:55]Usingcwd:/Users/beau/p/example[18:32:55]Usingbowerdir:static/vendor[18:32:55]Starting'sass'...[18:32:56]Starting'browserify'...[18:33:05]Bundlingbundle-about.js...[18:33:05]Bundlingbundle-accounts-login.js...[18:33:05]Bundlingbundle-accounts-signup.js...[18:33:05]Bundlingbundle-activities.js...[18:33:05]Finished'browserify'after9.39s[18:33:08]Finished'sass'after13s[18:33:14]Finished'bower-install'after19s[18:33:14]Starting'bower-main-files'...[18:33:14]Starting'bower-detritus'...[18:33:14]Finished'bower-main-files'after104ms[18:33:14]Finished'bower-detritus'after507ms[18:33:14]Starting'bower'...[18:33:14]Finished'bower'after18μs[18:33:14]Starting'build'...[18:33:14]Finished'build'after5μsYouhaverequestedtocollectstaticfilesatthedestinationlocationasspecifiedinyoursettings:/Users/beau/p/example/static-filesThiswilloverwriteexistingfiles!Areyousureyouwanttodothis?Type'yes'tocontinue,or'no'tocancel:yesCopying'/Users/beau/p/example/build/js/bundle-about.js'Copying'/Users/beau/p/example/build/js/bundle-about.map.json'Copying'/Users/beau/p/example/build/js/bundle-accounts-login.js'Copying'/Users/beau/p/example/build/js/bundle-accounts-login.map.json'Copying'/Users/beau/p/example/build/js/bundle-accounts-signup.js'Copying'/Users/beau/p/example/build/js/bundle-accounts-signup.map.json'Copying'/Users/beau/p/example/build/js/bundle-activities.js'Copying'/Users/beau/p/example/build/js/bundle-activities.map.json'