我有以下gulpfile.js,我通过命令行gulp消息执行:

var gulp = require('gulp');

gulp.task('message', function() {
  console.log("HTTP Server Started");
});

我得到以下错误消息:

[14:14:41] Using gulpfile ~\Documents\node\first\gulpfile.js
[14:14:41] Starting 'message'...
HTTP Server Started
[14:14:41] The following tasks did not complete: message
[14:14:41] Did you forget to signal async completion?

我在Windows 10系统上使用gulp 4。下面是gulp——version的输出:

[14:15:15] CLI version 0.4.0
[14:15:15] Local version 4.0.0-alpha.2

当前回答

在默认函数中添加done作为参数。这样就行了。

其他回答

我最近一直在努力解决这个问题,并找到了正确的方法来创建一个默认任务,运行sass然后sass:watch是:

gulp.task('default', gulp.series('sass', 'sass:watch'));

我的解决方案:把所有东西都放在async中,然后等待gulp。

async function min_css() {
    return await gulp
        .src(cssFiles, { base: "." })
        .pipe(concat(cssOutput))
        .pipe(cssmin())
        .pipe(gulp.dest("."));
}

async function min_js() {
    return await gulp
        .src(jsFiles, { base: "." })
        .pipe(concat(jsOutput))
        .pipe(uglify())
        .pipe(gulp.dest("."));  
}

const min = async () => await gulp.series(min_css, min_js);

exports.min = min;

在默认函数中添加done作为参数。这样就行了。

对我来说,问题是不同的:angular -cli没有安装(我用NVM安装了一个新的Node版本,只是忘记重新安装angular cli)

你可以检查运行“ng version”。

如果你没有,运行"npm install -g @angular/cli"

在gulp版本4及更高版本中,要求所有gulp任务都告诉gulp任务将在何处结束。为此,我们调用一个函数,该函数作为任务函数中的第一个参数传递

var gulp = require('gulp');
gulp.task('first_task', function(callback) {
  console.log('My First Task');
  callback();
})