我的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和最佳做法实现上述目标?
答案 0 :(得分:8)
gulp-nodemon文档说明你可以直接执行它,传递一系列任务来执行:
nodemon({script: 'app.js'}).on('restart', ['scripts', 'lint']);
请参阅doc here
UPDATE,因为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();
});
答案 1 :(得分:3)
如果可以的话,请使用Mangled Deutz关于使用函数的建议。这是确保现在和未来发挥作用的最佳,最有保证的方法。
但是,如果您需要运行相关任务或一系列任务,则功能无效。我写了run-sequence来解决这个问题。它不依赖gulp.run
,而且能够按顺序运行一堆任务。