gulp-nodemon onChange事件触发两次

我试图按顺序设置我的项目的吞咽任务,以及我的gulpfile.js代码目前的样子:

var gulp = require('gulp'), nodemon = require('gulp-nodemon'), webpack = require('gulp-webpack'); gulp.task('nodemon', ['webpack'], function(){ console.log('NODEMON'); return nodemon({ script: 'server/server.js', ext: 'js', ignore: [ 'client/game.js' ], tasks: function(changedFiles){ var tasks = ['webpack']; changedFiles.forEach(function(file){ console.log('changed file: ' + file); }); return tasks; }, env: { 'NODE_ENV': 'development' } }); }); gulp.task('webpack', function(){ console.log('WEBPACK'); return gulp.src('src/main.js') .pipe(webpack({ entry: `${__dirname}/src/main.js`, output: { path: `${__dirname}/client/`, filename: 'game.js' }, module: { loaders: [ { test: /\.js$/, loader: 'babel', query: { presets: ['es2015'] } } ] } })) .pipe(gulp.dest('client/')); }); gulp.task('default', ['webpack', 'nodemon'], function(){ console.log('DEFAULT'); }); 

首先,一切正常,这很好。 但是,当我修改我的server.js文件,它总是触发onChange事件两次导致'webpack'运行和服务器重新启动两次。 我究竟做错了什么?

编辑:奇怪的是,每次我修改一个脚本,它不仅触发'webpack'任务运行,但它也重新运行我的gulpfile.js脚本,复制它运行的每一个任务,这是服务器启动两次的原因。 我现在的问题是为什么gulpfile.js每次都运行。 这不会发生,如果我跳过任务参数。

Interesting Posts