Я запускаю узел в Windows 10. У меня есть три приложения узла, и я хочу иметь возможность запускать их все с помощью одной удобной команды grunt. Кроме того, я хочу, чтобы узел автоматически перезапускался, если я изменяю любое из приложений.
Я использую комбинацию grunt-nodemon и grunt-concurrent для этого. Все процессы узла запускаются нормально.
Проблема в том, что если я изменяю код, относящийся к любому из них, они все перезапускаются, что занимает много времени. Как я могу сделать так, чтобы nodemon перезапускал только то приложение, код которого я фактически изменил?
var loadGruntTasks = require('load-grunt-tasks')
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concurrent: {
runAll: {
tasks: ['nodemon:app1', 'nodemon:app2', 'nodemon:app3'],
options: {
logConcurrentOutput: true
}
}
},
nodemon: {
app1: {
script: './app1/app.js'
},
app2: {
script: './app2/app.js'
},
app3: {
script: './app3/app.js'
}
}
})
loadGruntTasks(grunt)
grunt.registerTask('default', ['concurrent:runAll'])
}
Обновлять
Если я использую grunt-watch
вместо grunt-nodemon
, перезапустится только то приложение, код которого я изменил. Проблема в том, что grunt-watch
знает только о запуске node app.js
, что выдает ошибку, потому что приложение уже запущено. Есть ли способ заставить grunt-watch
убить процесс узла и перезапустить его?