Залпом-nodemon и задач смотреть


Я пытаюсь создать свой поток сборки с помощью gulp и nodemon. Цель состоит в том, чтобы смотреть файлы sass и компилировать их в css, а также перезапускать приложение node при изменении файла сервера.

Мой глоток.js:

gulp.task('sass', function(){
  return gulp.src(sassFilesTobeProcessed).
  pipe(sass()).
  pipe(concat('ready_stylesheet.css')).
  pipe(gulp.dest('express/public/stylesheets'))
})

gulp.task('watch', function(){
  return gulp.watch(allSassFiles, ['sass']);
})

gulp.task('serve', function(){
  return nodemon({
    script: 'express/app.js',
  }).on('start', ['watch'])
  .on('change', ['watch'])
  .on('restart', function(){
      console.log('restarted');
    })
})

Задача наблюдения работает нормально, файлы компилируются после изменения. Но изменения в моем приложении.файл JS server не вызывает перезапуск сервера. Когда я комментирую операторы .on, он начинает работать нормально (сервер перезагружается), но тогда, конечно, файлы sass больше не являются наблюдаемый. Я предполагаю, следовательно, что между этими двумя существует некий конфликт, который я не могу обнаружить. Ценю любую помощь! Моя ОС-Windows 7, node 4.2.6, nodemon 1.9.1

2 2

2 ответа:

Используйте зависимость задачи вместо .on(event), чтобы начать свою задачу watch:

gulp.task('serve', ['watch'], function(){
  return nodemon({
    script: 'express/app.js',
  })
  .on('restart', function(){
    console.log('restarted');
  })
})

Испускаем событие перезапуска с помощью nodemon

const cfg = require('../config')
const gulp = require('gulp')
const nodemon = require('nodemon')
const gnodemon = require('gulp-nodemon')

gulp.task('nodemon', ['ts', 'json'], () => {
  gnodemon({
    script: cfg.paths.main,
    tasks: ['ts', 'json'],
    ext: 'js',
    watch: [cfg.paths.src],
    // para no alterar el entorno de prodicion con test
    env: {'NODE_ENV': process.env.NODE_ENV !== 'production'
      ? process.env.NODE_ENV || 'development' : 'development'}
  })
  .on('start', ['mocha'])
})

gulp.task('default', ['nodemon'], () => {
  gulp.watch(cfg.paths.src, (event) => nodemon.emit('restart'))
})