且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

我可以使用具有多个来源和多个目的地的Gulp任务吗?

更新时间:2022-11-05 13:56:27

我猜测

更新



遵循配方中的想法,并简单介绍一下您的示例,这可能是一个解决方案:

  var gulp = require('gulp'),
path = require('path'),
merge = require('merge-stream');

var folders = ['httpdocs-site1','httpdocs-site2','httpdocs-site3'];
$ b $ gulp.task('default',function(){

var tasks = folders.map(function(element){
return gulp.src(element +'/media/sass/**/*.scss',{base:element +'/ media / sass'})
// ...其他步骤...
.pipe(gulp .dest(element +'/ media / css'));
});

return merge(tasks);
});




I have the following in my gulpfile.js:

   var sass_paths = [
        './httpdocs-site1/media/sass/**/*.scss',
        './httpdocs-site2/media/sass/**/*.scss',
        './httpdocs-site3/media/sass/**/*.scss'
    ];

gulp.task('sass', function() {
    return gulp.src(sass_paths)
        .pipe(sass({errLogToConsole: true}))
        .pipe(autoprefixer('last 4 version'))
        .pipe(minifyCSS({keepBreaks:true}))
        .pipe(rename({ suffix: '.min'}))
        .pipe(gulp.dest(???));
});

I'm wanting to output my minified css files to the following paths:

./httpdocs-site1/media/css
./httpdocs-site2/media/css
./httpdocs-site3/media/css

Am I misunderstanding how to use sources/destinations? Or am I trying to accomplish too much in a single task?

Edit: Updated output paths to corresponding site directories.

I guess that the running tasks per folder recipe may help.

Update

Following the ideas in the recipe, and oversimplifying your sample just to give the idea, this can be a solution:

var gulp = require('gulp'),
    path = require('path'),
    merge = require('merge-stream');

var folders = ['httpdocs-site1', 'httpdocs-site2', 'httpdocs-site3'];

gulp.task('default', function(){

    var tasks = folders.map(function(element){
        return gulp.src(element + '/media/sass/**/*.scss', {base: element + '/media/sass'})
            // ... other steps ...
            .pipe(gulp.dest(element + '/media/css'));
    });

    return merge(tasks);
});