gulp-nodemon onChange事件触发两次

时间:2016-11-03 00:05:34

标签: 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({
        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。如果我跳过任务参数,则不会发生这种情况。

0 个答案:

没有答案