Gulp does not start after completing tasks

When gulp is launched on the server, it does not exit after completing tasks. This is what I get:

[01:16:02] Using gulpfile /test/test/gulpfile.js [01:16:02] Starting 'clean'... [01:16:02] Finished 'clean' after 11 ms [01:16:02] Starting 'default'... [01:16:02] Starting 'styles'... [01:16:02] Starting 'scripts'... [01:16:02] Starting 'watch'... [01:16:02] Finished 'watch' after 20 ms [01:16:02] Finished 'default' after 40 ms [01:16:03] gulp-notify: [Gulp notification] Styles task complete [01:16:03] Finished 'styles' after 338 ms [01:16:03] gulp-notify: [Gulp notification] Scripts task complete [01:16:03] Finished 'scripts' after 921 ms 

It hangs there and does not return to the command line. And this is my gulpfile.js:

 var gulp = require('gulp'), autoprefixer = require('gulp-autoprefixer'), uglify = require('gulp-uglify'), imagemin = require('gulp-imagemin'), rename = require('gulp-rename'), concat = require('gulp-concat'), notify = require('gulp-notify'), cache = require('gulp-cache'), livereload = require('gulp-livereload'), minifyCss = require('gulp-minify-css'), del = require('del'); gulp.task('styles', function() { return gulp.src('./test/css/*.css') .pipe(autoprefixer('last 2 version')) .pipe(concat('main.css')) .pipe(gulp.dest('./dist/styles')) .pipe(rename({ suffix: '.min' })) .pipe(minifyCss()) .pipe(gulp.dest('./dist/styles')) .pipe(notify({ message: 'Styles task complete' })); }); gulp.task('scripts', function() { return gulp.src('./test/js/*.js') .pipe(concat('main.js')) .pipe(gulp.dest('./dist/scripts')) .pipe(rename({ suffix: '.min' })) .pipe(uglify()) .pipe(gulp.dest('./dist/scripts')) .pipe(notify({ message: 'Scripts task complete' })); }); gulp.task('clean', function() { return del(['dist/styles', './dist/scripts']); }); gulp.task('default', ['clean'], function() { gulp.start('styles', 'scripts', 'watch'); }); gulp.task('watch', function() { gulp.watch('./test/css/*.css', ['styles']); gulp.watch('./test/*.js', ['scripts']); }); 

The only way to return to the command line is Ctrl + C.

+5
source share
1 answer

If you perform the default gulp job (just by running gulp on the command line with no arguments), it does not return, because your default task calls your watch task.

 gulp.task('watch', function() { gulp.watch('./test/css/*.css', ['styles']); gulp.watch('./test/*.js', ['scripts']); }); 

This task will keep track of the indicated locations awaiting changes, and when changes occur, they will complete the specified tasks. He does not return on his own. You must manually interrupt it.

If you want to create another task that only builds your code and then exits, you can use the following:

 gulp.task('build', ['clean', 'styles', 'scripts']); 

And then run it with the command:

 gulp build 
+15
source

Source: https://habr.com/ru/post/1239280/


All Articles