Usando uma tarefa grunt personalizada para iniciar um servidor de nó e observar

A tarefa de servidor do Grunt inicia um servidor estático (muito útil ao desenvolver aplicativos de página única) e é configurada assim:

grunt.initConfig({
server
: {
port
: 3000,
base: './public'
}
});

Posso mantê-lo funcionando usando-o com relógio (deve ser o último, pois bloqueia).

grunt server watch

Para que ele inicie um aplicativo Node, em vez de apenas servir ativos estáticos, eu uso uma tarefa personalizada:

grunt.registerTask('server', 'Start a custom web server', function() {
grunt
.log.writeln('Started web server on port 3000');
require('./app.js').listen(3000);
});

Em seguida, exporto-o em app.js assim:

express = require('express');
app
= module.exports = express();
....