将Gulp脚本从V3转换为V4时出错

时间:2019-03-20 17:10:38

标签: javascript npm sass gulp gulp-4

我将旧项目上的3.9.1更新为gulp4。由于升级,我不得不根据文档重写任务。我已经切换到名称函数,并且正在使用gulp.series,但出现诸如以下错误:

AssertionError [ERR_ASSERTION]:从未定义任务:mobile_styles

下面是我的gulp文件。它主要由台式机和移动设备上两种语言的观看脚本组成

hash('md5', $blablabla)

有人可以帮助我进行故障排除吗?我应该为任务切换到gulp.parallels还是以错误的方式重构它?

1 个答案:

答案 0 :(得分:2)

您所有的手表都应采用以下形式:

gulp.watch("./sass/**/*.sass", gulp.series(mobile_styles)

例如,更改为:

gulp.task(
    "watch:all",
    gulp.series(
        mobile_styles,
        mobile_styles_rtl,
        desktop_styles,
        desktop_styles_rtl,
        function(done) {
            gulp.watch("./sass/**/*.sass", gulp.series(mobile_styles));
            gulp.watch("./sass/**/*.sass", gulp.series(mobile_styles_rtl));
            gulp.watch("./sass/**/*.sass", gulp.series(desktop_styles));
            gulp.watch("./sass/**/*.sass", gulp.series(desktop_styles_rtl));
            done();
        }
    )
);

请注意,在引用命名函数时,它们不会用引号引起来(就像用gulp.task创建的任务一样)。我添加了done来表示该任务何时完成,这很重要。

您必须将大部分代码更改为此表格。您的gulp.task调用也可以转换为命名函数。因此,以上代码的开头可能是:

   function watch_all() {
        gulp.series(….

[虽然不能在函数名称中使用:。]