Я хочу, чтобы задача моего gulp watch выполнялась только один раз, а затем перестала смотреть. Теперь, если я запустил «gulp» из командной строки, задачи watch сохраняют задачу gulp. Мне нужно нажать Ctrl-C, чтобы остановить его.Завершить задачу gulp-watch
ответ
при запуске gulp watch, он будет продолжать просмотр изменений файла, пока вы не отмените его с помощью CTRL-C. Я не хочу этого, тогда вы можете сделать отдельную задачу глотки для своего здания.
У вас было бы 2 задания: gulp watch и gulp build. Поскольку сборка не будет запускать задачу просмотра, она прекратится, когда закончится.
Пожалуйста, взгляните на мой проект GitHub, где я делаю такие вещи: skeletonSPA on GitHub. Если вы посмотрите на gulpfile.js
, вы увидите, что задача default
выполнит задачу build
. Задача сборки на своем ходу будет выполнена info
, clean
, styles
, scripts
, images
, copy
, todo
; оставляя вас с полной сборкой и рабочим интерфейсом.
После выполнения этих задач он остановится и даст вам фокус в командной строке.
Вот очень простой пример GulpFile.js
:
var gulp = require('gulp'),
watch = require('gulp-watch'),
runSequence = require('gulp-sequence'),
webpack = require('webpack-stream');
gulp.task('webpack', function() {
return gulp.src('client/index.js')
.pipe(webpack({
output: {
filename: 'dist/bundle.js'
},
devtool: 'source-map'
}))
.pipe(gulp.dest('.'));
});
// other tasks
gulp.task('build', ['webpack', 'other tasks... ']);
gulp.task('watch', function(callback) {
gulp.watch('./client/**/*.js', {}, ['webpack']);
// more watches if required
});
gulp.task('default', function(callback) {
runSequence('build', 'watch', callback);
});
$ gulp build
> будет просто запустить build
когда-то, а затем выход.
$ gulp watch
> начнет просмотр (ctrl-c
для выхода).
$ gulp
> будет выполняться build
и после того, как это полная она будет работать watch
(ctrl-c
для выхода).
Примечание: Я использую штекер gulp-sequence
, чтобы гарантировать, что при запуске $ gulp
сборка будет завершена до того, как начнутся часы.