gulp无法输出任何文件,gulp-count显示至少有1个文件传递给gulp.dest

时间:2016-08-30 15:30:30

标签: gulp

我有一个非常简单的gulp文件,如下所示:

var gulp = require('gulp');
var jade = require('gulp-jade');
var sass = require('gulp-sass');
var concat = require('gulp-concat');
var count = require('gulp-count');

gulp.task('jade', function (done) {
    gulp.src('./src/jade/pages/**/*.jade')
        .pipe(jade())
        .pipe(gulp.dest('./www/'))
        .end(done);
});

gulp.task('js', function (done) {
    gulp.src('./src/js/**/*.js')
        .pipe(count('## js-files selected'))
        .pipe(concat('script.js'))
        .pipe(count('## js-files concat'))
        .pipe(gulp.dest('./www/js/'))
        .end(done);
});

gulp.task('sass', function (done) {
    gulp.src('./src/sass/**/*.scss')
        .pipe(sass())
        .pipe(count('## scss-files sass'))
        .pipe(concat('style.css'))
        .pipe(count('## css-files concat'))
        .pipe(gulp.dest('./www/css/'))
        .end(done);
});

gulp.task('watch', ['jade', 'js', 'sass'], function () {
    gulp.watch(['./src/jade/pages/**/*.jade'],  ['jade']);
    gulp.watch(['./src/sass/**/*.scss'],  ['sass']);
    gulp.watch(['./src/js/**/*.js'], ['js']);
});

gulp.task('default', ['jade', 'js', 'sass']);

但是,执行gulpgulp default后,www目录中没有任何内容。

如您所见,我已使用gulp-count打印出已处理文件的数量,并显示至少有一个文件传递给gulp.dest。这是CLI输出:

[23:16:11] Using gulpfile ~/work/web/lab-page/gulpfile.js
[23:16:11] Starting 'jade'...
[23:16:11] Starting 'js'...
[23:16:11] Starting 'sass'...
[23:16:11] Finished 'jade' after 12 ms
[23:16:11] Finished 'js' after 6.81 ms
[23:16:11] Finished 'sass' after 4 ms
[23:16:11] Starting 'default'...
[23:16:11] Finished 'default' after 6.09 μs
[23:16:11] 1 js-files selected
[23:16:11] 1 js-files concat
[23:16:11] 2 scss-files sass
[23:16:11] 1 css-files concat

但为什么没有生成文件?

我正在为我的流使用end函数来触发结束回调,但似乎我做错了。现在我使用on('end', done)将回调绑定到end事件,它对我有用。

工作代码如下:

gulp.task('jade', function (done) {
    gulp.src('./src/jade/pages/**/*.jade')
        .pipe(jade())
        .pipe(gulp.dest('./www/'))
        .on('end', done);
});

gulp.task('js', function (done) {
    gulp.src('./src/js/**/*.js')
        .pipe(count('## js-files selected'))
        .pipe(concat('script.js'))
        .pipe(count('## js-files concat'))
        .pipe(gulp.dest('./www/js/'))
        .on('end', done);
});

gulp.task('sass', function (done) {
    gulp.src('./src/sass/**/*.scss')
        .pipe(sass())
        .pipe(count('## scss-files sass'))
        .pipe(concat('style.css'))
        .pipe(count('## css-files concat'))
        .pipe(gulp.dest('./www/css/'))
        .on('end', done);
});

gulp.task('watch', ['jade', 'js', 'sass'], function () {
    gulp.watch(['./src/jade/pages/**/*.jade'],  ['jade']);
    gulp.watch(['./src/sass/**/*.scss'],  ['sass']);
    gulp.watch(['./src/js/**/*.js'], ['js']);
});

gulp.task('default', ['jade', 'js', 'sass']);

我错了吗?而且,end方法对g​​ulp流做了什么?

0 个答案:

没有答案