Nodemon重启运行gulp任务

我在我的gulpfile中有以下代码

gulp.task('scripts', function () { gulp.src(paths.browserify) .pipe(browserify()) .pipe(gulp.dest('./build/js')) .pipe(refresh(server)); }); gulp.task('lint', function () { gulp.src(paths.js) .pipe(jshint()) .pipe(jshint.reporter(stylish)); }); gulp.task('nodemon', function () { nodemon({ script: 'app.js' }); }); 

当Nodemon重新启动时,我需要运行脚本和lint任务。我有以下几点

 gulp.task('nodemon', function () { nodemon({ script: 'app.js' }).on('restart', function () { gulp.run(['scripts', 'lint']); }); }); 

现在不推荐使用Gulp.run(),那么如何使用Gulp和最佳实践来实现上述目标?

gulp-nodemon文档指出,你可以直接执行,传递一组任务来执行:

 nodemon({script: 'app.js'}).on('restart', ['scripts', 'lint']); 

在这里看到文档

更新,因为gulp-nodemon的作者也使用run:

想法#1,使用function:

 var browserifier = function () { gulp.src(paths.browserify) .pipe(browserify()) .pipe(gulp.dest('./build/js')) .pipe(refresh(server)); }); gulp.task('scripts', browserifier); var linter = function () { gulp.src(paths.js) .pipe(jshint()) .pipe(jshint.reporter(stylish)); }); gulp.task('lint', linter); nodemon({script: 'app.js'}).on('restart', function(){ linter(); browserifier(); }); 

如果可以的话,使用Mangled Deutz关于使用函数的build议。 这是最好的,最有保证的方式,以确保现在和未来的工作。

但是,如果需要运行相关任务或一系列任务,function将无济于事。 我写了运行序列来解决这个问题。 它不依赖于gulp.run ,它能够按顺序运行一堆任务。