控制台中的Gulp错误

时间:2016-07-04 12:06:11

标签: gulp

我使用Gulp 4并在控制台中出现以下错误(我尝试将gulpfile代码升级为gulp 4,但它仍无效):

$ gulp
[13:30:25] Using gulpfile c:\Users\Sylwia Szymańska\Projects\New project\gulpfil
e.js
[13:30:25] Starting 'default'...
[13:30:25] 'default' errored after 2.95 ms
[13:30:25] AssertionError: Task function must be specified
    at Gulp.set [as _setTask] (C:\Users\user\Projects\New project\no
de_modules\undertaker\lib\set-task.js:10:3)
    at Gulp.task (C:\Users\user\Projects\New project\node_modules\un
dertaker\lib\task.js:13:8)
    at C:\Users\user\Projects\New project\node_modules\gulp-series\l
ib\gulp-series.js:27:11
    at Array.forEach (native)
    at C:\Users\user\Projects\New project\node_modules\gulp-series\l
ib\gulp-series.js:23:11
    at taskWrapper (C:\Users\user\Projects\New project\node_modules\
undertaker\lib\set-task.js:13:15)
    at bound (domain.js:280:14)
    at runBound (domain.js:293:12)
    at asyncRunner (C:\Users\user\Projects\New project\node_modules\
async-done\index.js:36:18)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)

我的gulpfile:

var gulp = require('gulp');
var build = require('gulp-build');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
var browser_sync = require('browser-sync');
var gulps = require("gulp-series");
var watch = require('gulp-watch');
var less = require('gulp-less');
var livereload = require('gulp-livereload');

gulp.task('stream', function () {
    // Endless stream mode
    return watch('css/**/*.css', { ignoreInitial: false })
        .pipe(gulp.dest('build'));
});

gulp.task('callback', function () {
    // Callback mode, useful if any plugin in the pipeline depends on the `end`/`flush` event
    return watch('css/**/*.css', function () {
        gulp.src('css/**/*.css')
            .pipe(gulp.dest('build'));
    });
});


gulp.task('build', function() {
  gulp.src('scripts/*.js')
      .pipe(build({ GA_ID: '123456' }))
      .pipe(gulp.dest('dist'))
});

'use strict';
var gulp = require('gulp');
var sass = require('gulp-sass');

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

gulp.task('sass:watch', function () {
  gulp.watch('./sass/**/*.scss', ['sass']);
});

//sourcemaps???
var gulp = require('gulp');
// var plugin1 = require('gulp-plugin1');
// var plugin2 = require('gulp-plugin2');
var sourcemaps = require('gulp-sourcemaps');

gulp.task('javascript', function() {
  gulp.src('src/**/*.js')
    .pipe(sourcemaps.init())
      // .pipe(plugin1())
      // .pipe(plugin2())
    .pipe(sourcemaps.write())
    .pipe(gulp.dest('dist'));
});

// var less = require('gulp-less'),
//     livereload = require('gulp-livereload');

gulp.task('less', function() {
  gulp.src('less/*.less')
    .pipe(less())
    .pipe(gulp.dest('css'))
    .pipe(livereload());
});

gulp.task('watch', function() {
  livereload.listen();
  gulp.watch('less/*.less', ['less']);
});


var gulps = require("gulp-series");

    gulps.registerTasks({
        "test1" : (function(done) {
            setTimeout(function() {
                console.log("test1 is done");
                done();
            }, 1000);
        }),
        "test2" : (function() {
            console.log("test2 is done");
        })
    });

    gulps.registerSeries("default", ["test1", "test2"]);


  var concat = require('gulp-concat');

gulp.task('scripts', function() {
  return gulp.src('./lib/*.js')
    .pipe(concat('all.js'))
    .pipe(gulp.dest('./dist/'));
});

我会感激不尽! 我安装了所有软件包(我希望如此)。

1 个答案:

答案 0 :(得分:2)

在Gulp 4.0中,gulp.watch任务不再接受像['sass']这样的数组参数。 您可以使用gulp.series or gulp.parallel来定义gulp.watch触发更改事件时要执行的任务。

gulp.task('sass:watch', function () {
  gulp.watch('./sass/**/*.scss', gulp.series('sass'));
});

The Complete-Ish Guide to Upgrading to Gulp 4可能有用。