Eu tive o mesmo problema e resolvi usando grunt-watch e grunt-forever com tarefas sails @ beta. O resultado são 4 comandos grunt:
ATUALIZAÇÃO: as tarefas estão disponíveis na versão atual das velas (não é mais beta:>)
- start Inicia o servidor
- parar Para o servidor
- reiniciar Reinicia o servidor
- startWatch Inicia o servidor e espera por mudanças para reiniciá-lo (usando grunt-watch). Esta é provavelmente a sua solução, mas os outros comandos também são úteis.
Aqui está o código - estou usando sails @ beta, que inclui um diretório de tarefas , não sei se isso está incluído nas versões anteriores:
Em primeiro lugar, você deve instalar para sempre no diretório de velas:
npm install grunt-forever --save-dev
tasks / config / forever.js Configure a tarefa forever.
module.exports = function(grunt) {
grunt.config.set('forever', {
server: {
options: {
index: 'app.js',
logDir: 'logs'
}
}
});
grunt.loadNpmTasks('grunt-forever');
};
tarefas / config / watch.js ( editar ) Editar tarefa de observação para adicionar uma nova regra
// api and assets default rules
,
server: {
// Server files to watch:
files: [
'api/**/*',
'config/**/*'
],
// Restart server
tasks: ['forever:server:restart']
}
tasks / register / watchForever.js Registre suas tarefas personalizadas (este arquivo pode ser renomeado para o que você quiser)
module.exports = function(grunt) {
// Starts server
grunt.registerTask('start', [
'compileAssets',
'linkAssetsBuild',
'clean:build',
'copy:build',
'forever:server:start'
]);
// Restarts the server (if necessary) and waits for changes
grunt.registerTask('startWatch', [
'restart',
'watch:server'
]);
// Restarts server
grunt.registerTask('restart', [
'forever:server:restart'
]);
// Stops server
grunt.registerTask('stop', [
'forever:server:stop'
]);
};
Com isso, você deve ser capaz de usar
grunt startWatch
e faça seu servidor esperar que as mudanças sejam reiniciadas:>
Espero que tenha ajudado!
.foreverignore
pois elas não precisam ser reiniciadas para ver as alterações imediatamente. por exemplo**/views/**