У мене була така ж проблема, і я вирішив її за допомогою grunt-watch і grunt-forever з вітрилами @ beta завданнями. В результаті виходять 4 команди:
ОНОВЛЕННЯ: завдання доступні в поточній версії вітрила (це вже не бета:>)
- start Запускає сервер
- stop Зупиняє сервер
- перезапуск Відновлює сервер
- startWatch Запускає сервер і чекає змін, щоб його перезапустити (використовуючи grunt-watch). Це, мабуть, ваше рішення, але інші команди також корисні.
Ось код - я використовую sails @ beta, який включає в себе каталог завдань , я не знаю, чи включено це в попередні версії:
Перш за все, вам доведеться назавжди встановити у своєму каталозі вітрила:
npm install grunt-forever --save-dev
завдання / config / forever.js Налаштувати завдання назавжди.
module.exports = function(grunt) {
grunt.config.set('forever', {
server: {
options: {
index: 'app.js',
logDir: 'logs'
}
}
});
grunt.loadNpmTasks('grunt-forever');
};
задачі / config / watch.js ( редагувати ) Редагувати завдання перегляду, щоб додати нове правило
// api and assets default rules
,
server: {
// Server files to watch:
files: [
'api/**/*',
'config/**/*'
],
// Restart server
tasks: ['forever:server:restart']
}
Завдання / зареєструватися / watchForever.js Зареєструйте власні завдання (цей файл можна перейменувати на все, що завгодно)
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'
]);
};
З цим ви повинні мати можливість користуватися
grunt startWatch
і змусити ваш сервер чекати змін, щоб перезапустити:>
Сподіваюся, це допомогло!
.foreverignore
оскільки вони не потребують перезавантаження, щоб негайно побачити зміни. наприклад**/views/**