2015-12-27 19 views
5

Quando esegue gulp sul server, non si chiude dopo aver terminato le attività. Questo è quello che ottengo:gulp non si chiude dopo aver eseguito le attività

[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 

Si spegne e non torna al prompt dei comandi. E questo è il mio 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']); 

}); 

L'unico modo per tornare al prompt dei comandi è con Ctrl + C.

risposta

15

Se si esegue l'attività di gulp predefinita (eseguendo semplicemente gulp nella riga di comando senza argomenti), non viene restituito poiché l'attività predefinita chiama l'attività watch.

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

Questa attività controllerà le posizioni specificate in attesa di modifiche e, quando si verificano cambiamenti, eseguirà le attività specificate. Non ritorna da solo. È necessario interromperlo manualmente.

Se si desidera creare un altro compito che si basa solo il codice e poi esce, è possibile utilizzare il seguente:

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

e quindi eseguirlo con il comando:

gulp build 
+0

doh! (facepalm) per me. Così ovvio ancora quando sei nuovo a questo, tutto sembra essere un grosso problema. –

Problemi correlati