Django runserver的Gulp任务

Zyp*_*rax 4 django backend task gulp

我正在尝试创建一个任务来启动我的Django后端.
我花了很长时间来解决这两个挑战:

  1. 找到激活virtualenv环境的正确方法
  2. 获取manage.py runserver以输出到stdout

搜索了几个小时后,我已经提出了一个解决方案.
我希望这会为别人节省很多时间和挫折感

Zyp*_*rax 9

下面的gulp任务,用coffeescript编写,将启动Django后端:

exec = require('child_process').exec

gulp.task 'serve:backend', ->
  proc = exec 'source bin/activate; PYTHONUNBUFFERED=1 ./manage.py runserver'
  proc.stderr.on 'data', (data) -> process.stdout.write data
  proc.stdout.on 'data', (data) -> process.stdout.write data
Run Code Online (Sandbox Code Playgroud)

您可以使用gulp serve:backend
注意运行任务:

  • 您不必安装任何Node包,内置了child_process.
  • 使用exec而不是spawn可以在一次调用中运行多个命令
  • 不仅处理stdout而且处理stderr,或者您不会在日志中看到请求
  • 不要忘记PYTHONUNBUFFERED或你在控制台中看不到任何东西(grmbl)