2014-04-16 4 views
0

gulp를 사용하는 방법을 배우고 있습니다. 예를 들어, 이름이 홀수 인 경우 이름을 기반으로 파일을 복사하려고했지만, 그렇지 않으면 짝수로 이동하십시오. 그러나 목적지 폴더가 엉망인 곳도 있습니다. 여기에 폴더 구조와 코드가 있습니다. 말 그대로 두 개의 출력 대상이있는 경우gulp.dest를 동적으로 만드는 방법

1 
--my 
----new 
-----2.txt 
----1.txt 
----2.txt 


    g = gulp.src '**/*.txt', cwd: '1' 
    g.pipe map (file,cb)-> 
     filename = path.basename file.path, path.extname(file.path) 
     if filename % 2 
      dest = 'odd' 
     else 
      dest = 'even' 
     debugger 
     console.log 'destination ',dest 
     g.pipe gulp.dest dest 
     cb null,file 

심지어 홀수 folder.It에 이름을 파일을 복사하는 (나는 생각 폐쇄)

답변

0

대상 폴더 기억되고 관한, 가장 간단한 솔루션을 수 있습니다 그래서 (나는 커피 스크립트를 사용하지 않는 당신이 그것을 직접 변환해야하므로)처럼, the gulp-if plugin를 사용 : 이것이 수행하는 과정은 fileIsOdd 기능으로 개별 파일

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

function fileIsOdd(file) { 
    return path.basename(file.path, path.extname(file.path)) % 2; 
} 

// in your task 
gulp.src('**/*.txt', {cwd: '1'}) 
    .pipe(_if(fileIsOdd, gulp.dest('odd'), gulp.dest('even'))) 

입니다. 이 함수가 truey 값을 반환하면 첫 번째 인수가 처리되고, 그렇지 않으면 두 번째 인수가 처리됩니다.