在服务器上运行gulp时,在完成任务后它不会退出。这就是我得到的:
[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
它停留在那里,并没有回到命令提示符。这是我的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']);
});
返回命令提示符的唯一方法是使用Ctrl + C.
答案 0 :(得分:16)
如果您正在运行默认的gulp任务(只在命令行中运行gulp
而没有参数),那么它不会返回,因为您的默认任务会调用watch
任务。
gulp.task('watch', function() {
gulp.watch('./test/css/*.css', ['styles']);
gulp.watch('./test/*.js', ['scripts']);
});
此任务将监视等待更改的指定位置,并在发生更改时运行指定的任务。它不会自行返回。你必须手动中断它。
如果您想创建另一个只构建代码然后退出的任务,您可以使用以下内容:
gulp.task('build', ['clean', 'styles', 'scripts']);
然后使用以下命令运行它:
gulp build