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
,它能够按顺序运行一堆任务。