【问题标题】:Light Gulp 4 task still throwing 'async completion' errorLight Gulp 4 任务仍然抛出“异步完成”错误
【发布时间】:2019-04-25 19:19:16
【问题描述】:

我以前没有使用过 Gulp,所以我没有将旧的 gulpfile 迁移到 Gulp 4。我只是想设置一些基本任务。但是,无论我使用何种方法来表示异步完成,以及在this post 中有详细记录,我仍然会收到“您是否忘记发出异步完成信号?”错误。

'use strict';

/*
=====
PLUGINS
=====
*/

var gulp = require('gulp'),
    plumber = require('gulp-plumber');

// sass
var sass = require('gulp-sass');
sass.compiler = require('node-sass');

// js
var concat = require('gulp-concat'),
    uglify = require('gulp-uglify');


/*
=====
TASKS
=====
*/

gulp.task('sass', function() {
    return gulp.src('./lib/**/*.scss')
        .pipe(sass().on('error', sass.logError))
        .pipe(gulp.dest('./lib/build'))
})

/*
=====
EXPORT TASKS
=====
*/

exports.sass = sass;

有了这个超级准系统设置不应该工作吗? return gulp.src 不返回流吗?我错过了什么?

节点 10.15.0, Gulp CLI 2.2.0, Gulp 4.0.1

【问题讨论】:

    标签: asynchronous gulp completion gulp-4


    【解决方案1】:

    试试

    // exports.sass = sass;
    
    exports.sass = gulp.series('sass');
    

    exports.sass = 'sass';
    

    您使用的是任务版本 (gulp.task),因此您需要引号。

    如果您使用的是函数版本(推荐):

    function sass2 () {
      return gulp.src('./lib/**/*.scss')
        .pipe(sass().on('error', sass.logError))
        .pipe(gulp.dest('./lib/build'))
    };
    

    然后

    exports.sass = sass2;
    

    工作正常。请注意,您已经有一个 var sass,因此您当然必须再次将您的 function sass2 命名为 sass 以外的名称。

    【讨论】:

      猜你喜欢
      • 2021-10-26
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多