Gulp-nodemon和监视任务

时间:2016-04-02 11:24:12

标签: node.js gulp nodemon

我正在尝试使用gulp和nodemon创建构建流程。目标是观察sass文件并将它们编译为css,并在服务器文件更改时重新启动节点应用程序。

我的gulpfile.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');
    })
})

监视任务工作正常,文件在更改后编译。但是我的app.js服务器文件中的更改不会触发服务器重启。当我评论.on语句时它开始工作正常(服务器重新加载),但当然不再遵守sass文件。因此,我认为这两者之间存在一些冲突,我无法发现。感谢任何帮助!我的操作系统 - Windows 7,节点4.2.6,nodemon 1.9.1

2 个答案:

答案 0 :(得分:3)

使用任务依赖项而不是.on(event)来启动watch任务:

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

答案 1 :(得分:0)

使用nodemon

发出restart事件
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'))
})