npm - Gulp(泵,运行序列) "task completion callback called too many times"

标签 npm gulp

我正在尝试使用 gulp-pumpgulp-run-sequence,但遇到了有关任务完成回调调用次数过多的错误.

下面是我的 Gulpfile:

var gulp = require('gulp');
var sass = require('gulp-sass');
var uglify = require('gulp-uglify');
var autoprefixer = require('gulp-autoprefixer');
var cleanCSS = require('gulp-clean-css');
var rename = require('gulp-rename');
var runSequence = require('run-sequence');
var pump = require('pump');

var pumpCb = function (err) {
    if (err) {
        console.log('Error: ', err.toString());
    }
};

// Local

gulp.task('local-sass', function (pumpCb) {
    return pump([
            gulp.src('public/assets/src/sass/**/*.scss'),
            sass(),
            autoprefixer(),
            gulp.dest('public/assets/dist/css/')
        ],
        pumpCb
    );
});

gulp.task('local-js', function (pumpCb) {
    return pump([
            gulp.src('public/assets/src/js/**/*.js'),
            uglify(),
            gulp.dest('public/assets/dist/js/')
        ],
        pumpCb
    );
});

// Production

gulp.task('prod-sass', function (pumpCb) {
    return pump([
            gulp.src('public/assets/src/sass/**/*.scss'),
            sass({outputStyle:'compact'}),
            autoprefixer(),
            gulp.dest('public/assets/dist/css/')
        ],
        pumpCb
    );
});

gulp.task('prod-css', function (pumpCb) {
    return pump([
            gulp.src(['./public/assets/dist/css/**/*.css','!./public/assets/dist/css/**/*.min*']),
            cleanCSS(),
            rename({ suffix: '.min' }),
            gulp.dest('public/assets/dist/css/')
        ],
        pumpCb
    );
});

gulp.task('prod-js', function (pumpCb) {
    return pump([
            gulp.src('public/assets/src/js/**/*.js'),
            uglify(),
            rename({ suffix: '.min' }),
            gulp.dest('public/assets/dist/js')
        ],
        pumpCb
    );
});

// Calls

gulp.task('default', function () {
    gulp.watch('public/assets/src/sass/**/*.scss',['local-sass']);
    gulp.watch('public/assets/src/js/**/*.js',['local-js']);
});

gulp.task('prod', function () {
    runSequence('prod-sass','prod-css','prod-js');
});

run-sequencepump的文档中我看不出我做错了什么,所以也许这是对Gulp的更广泛的误解?

我已经阅读了关于同一错误的大部分答案,但我认为它们不适用于这个特定案例,我也无法看到如何将他们的发现推断到我自己的 Gulpfile 上。

如有任何帮助,我们将不胜感激!

最佳答案

我在 gulp 任务中也遇到了这个错误。这是因为您有一个 return 语句,并且您正在调用任务回调 pumpCb。删除 return 语句。

关于npm - Gulp(泵,运行序列) "task completion callback called too many times",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43397298/

相关文章:

reactjs - React Native 中任何组件的所有 Prop 和状态的列表

ionic-framework - 无法使用 ionic 2.2.0 进行 npm 安装全局化,未满足依赖项

reactjs - Mocha/Chai 测试 : How can I make it more strict?

typescript - 如何让 gulp-typescript 输出到与源文件相同的目录?

javascript - 干掉 gulp 任务

node.js - 为什么 npm install 在 git bash 上不起作用

javascript - 我如何在 Gulp 中排除从 Typescript 编译的 javascript 文件?

javascript - Gulp 创建脚本以将 css 内联到头部

angularjs - 我们是否应该将 package.json、bower.json、gulpfile.js 推送到生产服务器

javascript - React JSX 文件给出错误 "Cannot read property ' createElement' of undefined"