我在 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
杀死节点进程并重新启动它?