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