2014-10-09 1 views
2

내 꿀꺽 꿀꺽이는 작업에 문제가 있습니다. 하나의 작업을 통해 꿀꺽 마심과 함께 여러 개의 html 파일을 작성하므로 끝에 두 개의 파일 (index_de.html 및 index_en.html)이 있습니다. 문자열이 들어있는 .json 파일이 있습니다. 그것은 모두 잘 작동합니다. 그러나 나는 항상 언어 당 하나의 파일 대신에 de 또는 en이되는 두 파일로 끝납니다. 이미 creating tasks using a loop [gulp]을 시도했지만 작동하지 않습니다.루프로 꿀꺽 거리는 작업 실행

편집 : 명확히하기 : 두 파일 모두 동일한 내용을 포함합니다. 항상. 무작위로 어떤 언어가 될지는 모르겠지만 항상 동일합니다.

내 꿀꺽 작업은 다음과 같습니다

gulp.task('mustache', function() { 
    console.log('Found '+Object.keys(strings).length+' languages.'); 
    for (var l in strings) { 
    var lang = strings[l]; 
    (function(lang, l) { 
    gulp.src(buildpath+'/index.html') 
     .pipe(mustache(lang)) 
     .pipe(rename('index_'+l+'.html')) 
     .pipe(compressor({ 
     'remove-intertag-spaces': true, 
     'compress-js': true, 
     'compress-css': true 
     })) 
     .pipe(gulp.dest(destpath+'/')); 
    })(lang, l); 
    } 
}); 
+0

어떻게 동일한 디렉토리에 같은 이름의 파일 두 개를 만들 수 있습니까? 아니면 두 파일의 내용이 동일하다는 것을 의미합니까? –

+0

두 파일 모두 동일한 내용을 포함합니다. 항상. 무작위로 어떤 언어가 될지는 모르겠지만 항상 동일합니다. – Owlbertz

+0

'buildpath'는 어디에서 왔습니까? 그 가치는 어떻게 생겼습니까? – Ben

답변

0

당신은 내가 여기에 옵션이 gulp.src() 스트림의 일련의 병합 및 병합 된 스트림을 반환하는 것입니다 생각 async

var async = require('async'); 

gulp.task('build', function (done) { 
var tasks = []; 
    for (var i = 0; i < config.length; i++) { 
     tasks.push(function() { 
      var tmp = config[i]; 
      return function (callback) { 
       gulp.src(tmp.src) 
        .pipe(blah blah blah 
       )) 
        .pipe(gulp.dest(tmp.dest)) 
        .on("end", callback); 
      } 
     }()); 
    } 
    async.parallel(tasks, done); 
}); 
3

시도 할 수 있습니다. 다음은 merge-stream npm 패키지 (https://www.npmjs.com/package/merge-stream)를 사용하도록 수정 된 코드입니다.

var mergeStream = require('merge-stream'); 

gulp.task('mustache', function() { 
    console.log('Found ' + Object.keys(strings).length + ' languages.'); 
    var tasks = []; 
    for (var l in strings) { 
     var lang = strings[l]; 
     tasks.push(
      gulp.src(buildpath + '/index.html') 
       .pipe(mustache(lang)) 
       .pipe(rename('index_' + l + '.html')) 
       .pipe(compressor({ 
        'remove-intertag-spaces': true, 
        'compress-js': true, 
        'compress-css': true 
       })) 
       .pipe(gulp.dest(destpath + '/')) 
     ); 
    } 
    return mergeStream(tasks); 
});