Gulp 错误:必须指定任务函数

Cla*_*lay 1 javascript npm gulp

这是使用咕嘟咕嘟,我试图做一个gulpfile来缩小和合并我第一次cssjs文件,但是当我运行命令我有这样的错误gulp

C:\Users\S.Hocine\Desktop\gulpTest>gulp
AssertionError [ERR_ASSERTION]: Task function must be specified
    at Gulp.set [as _setTask] (C:\Users\S.Hocine\Desktop\gulpTest\node_modules\undertaker\lib\set-task.js:10:3)
    at Gulp.task (C:\Users\S.Hocine\Desktop\gulpTest\node_modules\undertaker\lib\task.js:13:8)
    at Object.<anonymous> (C:\Users\S.Hocine\Desktop\gulpTest\gulpfile.js:36:6)
    at Module._compile (internal/modules/cjs/loader.js:1156:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Module.require (internal/modules/cjs/loader.js:1042:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at requireOrImport (C:\Users\S.Hocine\AppData\Roaming\npm\node_modules\gulp-cli\lib\shared\require-or-import.js:19:11) {
  generatedMessage: false,
  code: 'ERR_ASSERTION',
  actual: false,
  expected: true,
  operator: '=='
}
Run Code Online (Sandbox Code Playgroud)

我的吞咽文件:

const gulp = require('gulp');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');

// minify and copy html
gulp.task('minifyHtml', function(){
    gulp.src('src/*.html')
        .pipe(uglify())
        .pipe(gulp.dest('dest'));
  });

// minify and merge css
gulp.task('minifyMergeCss', function(){
    gulp.src('src/css/*.css')
        .pipe(concat('merged-min.css'))
        .pipe(uglify())
        .pipe(gulp.dest('dest/css'));
  });

// minify and merge js
gulp.task('minifyMergeJs', function(){
  gulp.src('src/js/*.js')
      .pipe(concat('merged-min.js'))
      .pipe(uglify())
      .pipe(gulp.dest('dest/js'));
});

gulp.task('default', ['minifyHtml', 'minifyMergeCss', 'minifyMergeJs']);

gulp.task('watch', function(){
  gulp.watch('src/*.html', ['minifyHtml']);  
  gulp.watch('src/css/*.css', ['minifyMergeCss']);
  gulp.watch('src/js/*.js', ['minifyMergeJs']);
});
Run Code Online (Sandbox Code Playgroud)

我的 gulp 版本:
CLI 版本:2.3.0
本地版本:4.0.2

问题出在哪儿 ?

小智 5

如果您使用包含不同语法的 gulp 版本 V3,请使用最新版本的 gulp,并且对于您正在使用的最新版本的 gulp 任务模块,如果这不起作用,请使用这种方式,

An example of your function it must be,

    gulp.task('default', gulp.series('minifyHtml', 'minifyMergeCss', 'minifyMergeJs'));
Run Code Online (Sandbox Code Playgroud)

现在可以正常工作了。这是因为在 gulp v4 中 list 参数已被弃用。

请参阅gulp 文档中有关连续运行任务的更强大的示例

或者你可以查看文档npm

  • 您能详细说明一下并给出更完整的例子吗?我不明白OP的来源具体应该如何改变。 (2认同)