Search code examples
javascriptgulp

Call gulp task twice from another task sending arguments


I want to call 'proDirection' function twice inside 'proCompiler' function to get rtl.css and ltr.css files.

gulp.task('proDirection', function(rtl = 'true') {
    var fileName;
    rtl == 'false' ? fileName = 'ltr-style.css' : fileName = 'rtl-style.css';

    return gulp.src(srcMainStyleFilePath)
        .pipe(header('$rtl:'+ rtl + ';\n'))
        .pipe(sass({
            includePaths: ['node_modules']
        }).on('error', sass.logError))
        .pipe(cssnano({
            autoprefixer: {browsers: supported, add: true}
        }))
        .pipe(rename(fileName))
        .pipe(gulp.dest(distPath));
});

gulp.task('proCompiler', function() {
    //proDirection();
    //proDirection(false);
});

Solution

  • Something like this?

    gulp.task('proDirection', proDirection);
    
    gulp.task('proCompiler', function(done) {
        proDirection();
        proDirection('false');
        done();
    });
    
    function proDirection(rtl = 'true') {
        var fileName;
        rtl == 'false' ? fileName = 'ltr-style.css' : fileName = 'rtl-style.css';
    
        return gulp.src(srcMainStyleFilePath)
            .pipe(header('$rtl:'+ rtl + ';\n'))
            .pipe(sass({
                includePaths: ['node_modules']
            }).on('error', sass.logError))
            .pipe(cssnano({
                autoprefixer: {browsers: supported, add: true}
            }))
            .pipe(rename(fileName))
            .pipe(gulp.dest(distPath));
    }