简体   繁体   中英

Conditionally switching destination directory in gulp

I have a gulp task as shown below:

gulp.task('beautify', function () {
    return gulp.src(jsFileSrc)
        .pipe(prettify({
            debug: true
        }))
        .pipe(gulp.dest('src/'));
});

My directory structure is like:

|_assets/
  |_less/ */less files here */
|_src/
  |_scripts/ */js files here */

Currently it beautifies the .js files and puts them in the same location.

I want this same task to beautify my .less files as well like

gulp.task('beautify', function () {
    return gulp.src(jsFileSrc, lessFileSrc)
        .pipe(prettify({
            debug: true
        }))
        .pipe(gulp.dest('src/')); // <-- .less files should go in /assets
});

But the problem is that, the .less fles reside in an assets folder outside src folder.

How do I tell gulp to put the js files relative to src folder and less files relative to assets folder..?

You can use gulp-if to apply a .pipe() to only certain files:

var gulpif = require('gulp-if');

gulp.task('beautify', function() {
  return gulp.src([jsFileSrc, lessFileSrc])
    .pipe(prettify({
        debug: true
    }))
    .pipe(gulpif('*.js', gulp.dest('src/')))
    .pipe(gulpif('*.less', gulp.dest('assets/')))
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM