gulp默认,任务从未定义:默认,请检查文档以获取正确的gulpfile格式

时间:2017-02-21 13:05:28

标签: node.js npm gulp

我在一台新机器上查看了我的项目并获得了令人不满意的控制台输出。

控制台输出
gulp默认
使用gulpfile ... \ gulpfile.js
任务从未定义:默认
请查看文档以了解正确的gulpfile格式

gulp -v
CLI版本1.2.2
本地版本4.0.0-alpha.2

设置
节点解释器:nodejs-6.9.2 \ node.exe
Gulp包:node_modules \ gulp-4.0.build

Gulp文件内容

'use strict';
var gulp = require('gulp');
var del = require('del');
var path = require('path');
var sass = require('gulp-sass');
var ts = require('gulp-typescript');
var gulpPromise = require("gulp-promise");
var gulpPromiseAll = require('gulp-all');
var merge = require('merge-stream');
var through = require('through2');
var runSequence = require('run-sequence');
var async = require("async");
var Rx = require('rx');
var chok = require('chokidar');
var deleteEmpty = require('delete-empty');
var browserSync = require('browser-sync').create();
var webserver = require('gulp-webserver');
var historyApiFallback = require('connect-history-api-fallback');

/* A few functions like this */
var yadda1 = function() {
    return yadda9("yadda", yaddayadda);
};

/* A few tasks like this */
gulp.task('build', function(){
    return gulpPromiseAll(
        yadda1(),
        yadda2(),
        yadda3()
    ).then(
        function() {
            console.log("yadda");
        }, function(err) {
            console.error("yadda:", err);
        }
    );
});

gulp.task('default', gulp.series('build', 'serve', function(done) {
    console.log("Default task that cleans, builds and runs the application [END]");
    done();
}));

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我只是有这个问题。

我们俩都在使用浏览器同步,而与浏览器同步相关的任务正是我的代码中的问题所在,因此,您很有可能遇到相同的问题(也可能是在您的其他gulp任务中) ,但不能确定,因为您没有共享任务的代码。

问题:

在gulp 3.x中,您可以编写如下代码:

const foo = require("foo.js");
foo.bar();

您无法使用gulp 4.x。

解决方案:

在这种情况下,您必须传递函数而不是任务名称。您可以通过传递gulp.series()函数来实现。上面的代码变为:

const { bar } = require("foo.js");
bar();

在适用的情况下尝试进行此更改。为我工作。