Gulp 错误任务"+名称+"需要一个函数,该函数是一个函数



先前在此处提出了类似的问题:

错误:任务需要在gulp.orchestrator.add

上名称

在我的情况下,我正在设置gulp构建。

安装

gulp-connect
gulp-postcss
gulp-sourcemaps

当我运行gulp时,我得到

错误

    C:UsersjwilsonDocumentsJamesjameswilson.co.zanode_modulesorchestratorindex.js:44
                            throw new Error('Task '+name+' requires a function that is a function');
                            ^
Error: Task default requires a function that is a function
    at Gulp.Orchestrator.add (C:UsersjwilsonDocumentsJamesjameswilson.co.zanode_modulesorchestratorindex.js:44:10)
    at Object.<anonymous> (C:UsersjwilsonDocumentsJamesjameswilson.co.zagulpfile.js:19:6)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Liftoff.handleArguments (C:UsersjwilsonAppDataRoamingnpmnode_modulesgulpbingulp.js:116:3)

Gulpfile

var gulp = require('gulp'),
  connect = require('gulp-connect');
  postcss = require('gulp-postcss');
  sourcemaps = require('gulp-sourcemaps');
gulp.task('connect', function() {
  connect.server();
});
gulp.task('css', function () {
  return gulp.src('src/**/*.css')
      .pipe( sourcemaps.init() )
      .pipe( postcss([ require('precss'), require('autoprefixer') ]) )
      .pipe( sourcemaps.write('.') )
      .pipe( gulp.dest('build/') );
});
gulp.task('default', ['css'], ['connect']);

我认为错误在这里:

gulp.task('default', ['css'], ['connect']);

在我看来,就像您正在使用Gulp v3.9.1或以上一样。在这种情况下,gulp.task最多占用三个参数:一个任务名称,一组依赖任务名称和一个函数。您正在传递任务名称和两个1元素阵列。Gulp抱怨是因为它期望task的第三个参数是一个函数,但您将其传递给了Array ['connect']

我想您想用2个元素阵列替换两个1元素阵列:

gulp.task('default', ['css', 'connect']);

对于Gulp V4或更高版本,您可以使用以下内容进行串联运行两个任务:

gulp.task('default', gulp.series('css', 'connect'));

或并行,使用:

gulp.task('default', gulp.parallel('css', 'connect'));

相关内容

  • 没有找到相关文章

最新更新