首页 > 解决方案 > 转换为有效的 Gulp 4 文件

问题描述

我只是在处理一个较旧的项目,但我想使用 Gulp 4。我希望将其转换为有效的 Gulp 4 文件。有人能够帮助或指出我正确的方向吗?

var gulp = require('gulp');
var browserify = require('browserify');
var reactify = require('reactify'); // Converts jsx to js


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/js/vendors/*.*')
        .pipe(gulp.dest('dist/js'));
});

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

错误:

AssertionError [ERR_ASSERTION]: Task function must be specified at Gulp.set [as _setTask] (/Users/shanna/Desktop/Bookstore/node_modules/undertaker/lib/set-task.js:10:3) 

标签: gulptaskgulp-4

解决方案


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

你不能这样调用任务:

['browserify', 'copy']

在 gulp4 中。使用gulp.seriesorgulp.parallel并且gulp.task现在只接受两个参数。


推荐阅读