Gulp功能在更新到版本4后不起作用

时间:2019-08-20 09:34:59

标签: gulp

我已将Gulp 3.9更新为4,并且我的gulp任务现在返回断言错误:必须指定Task函数。

任何人都可以显示我如何重构下面的代码以与Gulp 4一起使用吗?

谢谢!

gulp.task('default', ['sass', 'browser-sync'], function () {
    gulp.watch("./scss/**/*.scss", ['sass']);
    gulp.watch("./js/main.js", ['javascript']);
});

2 个答案:

答案 0 :(得分:1)

gulp.task('default', gulp.series('sass', 'browser-sync', function () {
    gulp.watch("./scss/**/*.scss", 'sass');
    gulp.watch("./js/main.js", 'javascript');
}));

应该这样做。函数签名已更改(从3个参数更改为2个参数),您需要使用gulp.series

请参见Convert gulp watch in gulp@3.9.1 to gulp@4

答案 1 :(得分:0)

// compile scss into css
function style() {
    // 1. where is my scss file
    return gulp.src('./app/scss/**/*.scss')
    // 2. pass that file through sass compiler
      .pipe(sass().on('error', sass.logError))
    // 3. where do I save the compiled CSS?
      .pipe(gulp.dest('./app/css'))
    // 4. stream changes to all browser
      .pipe(browserSync.stream());
}

function watch() {
    browserSync.init({
        server: {
            baseDir: './app/'
        }
    });
    gulp.watch('./app/scss/**/*.scss', style);
    gulp.watch('./app/**/*.html').on('change', browserSync.reload);
    gulp.watch('./app/js/**/*.js').on('change', browserSync.reload);
}

exports.style = style;
exports.watch = watch;

遇到同样的问题,我在此youtube video

中找到了此代码

希望这会有所帮助。