2015-10-10 87 views
2

我有一個數組表示生成的文件及其內容,如何一飲而盡創建多個文件任務

[{name: "src/js/file1.js",content: "some js content"}, 
{name: "src/file2.html",content: "some html content"}, 
{name: "src/css/file3.css",content: "some css content"}] 

的文件還沒有文件系統上不存在,我怎麼把它們插入到一飲而盡管道線,以便在任何其他的吞嚥任務鬆動之前創建它們?我已經看過了這個大嘴巴,但是我不知道如何將它們粘在一起,並讓它起作用。任何幫助將非常感激。

回答

2

下面是我去的解決方案......它有點駭人,但嘿它的作品!請提出任何和所有改進建議。如果你喜歡它,請投票給我,謝謝!

var gulp = require("gulp"); 
var foreach = require("gulp-foreach"); 
var file = require("gulp-file"); 
var addsrc = require('gulp-add-src'); 
var files = [{name: "src/js/file1.js",content: "some js content"}, 
      {name: "src/file2.html",content: "some html content"}, 
      {name: "src/css/file3.css",content: "some css content"}]; 

gulp.task("default", function() { 
    return gulp.src("./dummy.txt", {base: "./.build"}) 
    .pipe(foreach(function(stream, f){ 
     files.forEach(function(gfile){ 
      stream 
       .pipe(file(gfile.name, gfile.content)) 
       .pipe(gulp.dest("./")); 
     }); 
     return stream; 
    })) 
    .pipe(addsrc(["./.build/**/*", "!./dummy.txt"])) 
    .pipe(gulp.dest("./app")); 
}