Nodemon重启运行gulp任务

TYR*_*AEL 7 javascript node.js 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'
    });
});
Run Code Online (Sandbox Code Playgroud)

我需要在Nodemon重启时运行脚本和lint任务.我有以下内容

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

Gulp.run()现已弃用,那么我如何使用gulp和最佳实践来实现上述目标?

Man*_*utz 8

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

nodemon({script: 'app.js'}).on('restart', ['scripts', 'lint']);
Run Code Online (Sandbox Code Playgroud)

请参阅此处的doc

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

想法#1,使用功能:

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();
});
Run Code Online (Sandbox Code Playgroud)