Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 吞食nodemon onChange事件触发两次_Javascript_Node.js_Gulp_Nodemon_Gulp Webpack - Fatal编程技术网

Javascript 吞食nodemon onChange事件触发两次

Javascript 吞食nodemon onChange事件触发两次,javascript,node.js,gulp,nodemon,gulp-webpack,Javascript,Node.js,Gulp,Nodemon,Gulp Webpack,我正在尝试按顺序设置我的项目的gulp任务,这是我的gulpfile.js代码当前的外观: var gulp = require('gulp'), nodemon = require('gulp-nodemon'), webpack = require('gulp-webpack'); gulp.task('nodemon', ['webpack'], function(){ console.log('NODEMON'); return nodemon({

我正在尝试按顺序设置我的项目的gulp任务,这是我的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。如果跳过tasks参数,则不会发生这种情况