AssertionError [ERR_ASSERTION]:必须指定任务功能

时间:2018-11-22 20:46:39

标签: javascript gulp

我正在尝试重构2年前写的一些旧代码。一个gulpfile.js文件。

问题似乎出在这里:

// gulp.task('default', ['browserify', 'copy'], function() {
//   return gulp.watch('src/**/*.*', ['browserify', 'copy']);
// });

我将其注释掉并替换为:

gulp.task('default', gulp.series('browserify', 'copy'), function() {
  return gulp.watch('src/**/*.*', ['browserify', 'copy']);
});

不够好。整个文件如下所示:

var gulp = require('gulp');
var browserify = require('browserify');
var reactify = require('reactify'); // Converts jsx to js
var source = require('vinyl-source-stream'); // Converts string to a stream

gulp.task('browserify', function() {
  browserify('./src/js/main.js')
    .transform('reactify')
    .bundle()
    .pipe(source('main.js'))
    .pipe(gulp.dest('dist/js'));
});

gulp.task('copy', function() {
  gulp.src('src/index.html').pipe(gulp.dest('dist'));
  gulp.src('src/css/*.*').pipe(gulp.dest('dist/css'));
  gulp.src('src/images/*.*').pipe(gulp.dest('dist/images'));
  gulp.src('src/js/vendors/*.*').pipe(gulp.dest('dist/js'));
});

// gulp.task('default', ['browserify', 'copy'], function() {
//   return gulp.watch('src/**/*.*', ['browserify', 'copy']);
// });

gulp.task('default', gulp.series('browserify', 'copy'), function() {
  return gulp.watch('src/**/*.*', ['browserify', 'copy']);
});

我已经阅读了一些入门文档,但是到目前为止,所读内容并没有帮助我进行重构。

2 个答案:

答案 0 :(得分:4)

使用Gulp 4.0,您串行运行任务的方式已更改。您可以使用下面的链接阅读并获取所需内容 https://github.com/gulpjs/gulp/blob/master/docs/recipes/running-tasks-in-series.md

答案 1 :(得分:0)

这个问题面对我,因为我使用npm i gulp安装了gulp版本 为了迅速解决此问题,请将其降级到两年前使用的gulp版本,一切都会正常进行。