Запуск приложения Node через Grunt
Я пытаюсь запустить приложение Node как задачу Grunt. Однако мне нужно порождать это как дочерний процесс, чтобы позволить мне параллельно запускать задачу наблюдения.
Это работает:
grunt.registerTask('start', function () {
grunt.util.spawn(
{ cmd: 'node'
, args: ['app.js']
})
grunt.task.run('watch:app')
})
Однако, когда задача наблюдения обнаруживает изменения, это снова запускает задачу запуска. Прежде чем я создаю другой дочерний процесс моего Node-приложения, мне нужно убить предыдущий.
Я могу'Однако я не могу понять, как убить процесс. Как то так не работает
var child
grunt.registerTask('start', function () {
if (child) child.kill()
child = grunt.util.spawn(
{ cmd: 'node'
, args: ['app.js']
})
grunt.task.run('watch:app')
})
Похоже, что:
Даже несмотря на то, что я сохраняю порожденный процесс в переменной вне контекста функции, он не сохраняется, поэтому при следующем запуске задачи запуска будет дочерний.undefined
child
не имеетkill
функция ...