Gulp-nodemon和监视任务

我正在尝试使用gulp和nodemon来创build我的构buildstream。 目标是观察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

使用任务依赖关系而不是.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')) })