javascript - 我可以使用具有多个源和多个目标的 Gulp 任务吗?

标签 javascript node.js gulp

我的 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(???));
});

我想将缩小的 css 文件输出到以下路径:

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

我是否误解了如何使用来源/目的地?还是我试图在一项任务中完成太多?

编辑:更新了对应站点目录的输出路径。

最佳答案

我猜 running tasks per folder食谱可能会有所帮助。

更新

遵循配方中的想法,并为了给出想法而过度简化您的示例,这可能是一个解决方案:

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);
});

关于javascript - 我可以使用具有多个源和多个目标的 Gulp 任务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26784094/

相关文章:

javascript - 如何使用 jquery 水平对齐更多跨度

JavaScript - 是否可以在错误后强制执行代码?

javascript - 语法错误 : Cannot use import statement outside a module

node.js - Socket.IO 在 IE 中使用 XHR 轮询

node.js - 如果不存在,如何使用 Browserify 创建新目录?

javascript - 在 Chrome 中使用 indexedDB 而不是 webSQL 不再工作

javascript - 跨同一域但使用不同端口的页面的本地存储

javascript - Heroku - 部署 React/Express 应用程序并在请求 chunk.js 文件时在控制台中获取 'Failed to load resource'

javascript - Gulp with browserify 静默失败

ubuntu - gulp 命令不起作用