1

我以前没有使用过 Gulp,所以我没有将旧的 gulpfile 迁移到 Gulp 4。我只是想设置一些基本任务。但是,无论我使用何种方法来发出异步完成信号,正如这篇文章中所记录的那样,我仍然会收到“您是否忘记发出异步完成信号?” 错误。

'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

4

1 回答 1

0

尝试

// 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

于 2019-04-25T21:04:52.350 回答