2014-05-18 1 views
6

에 덤프 빌드 을 실행하는 작업을 수행했습니다. 모든 컴파일, 확대 및 축소가 발생했습니다. 이 작업은 src의 모든 내용을 이전 작업에서 다루지 않았거나 처리하지 않은 dest 디렉토리에 복사합니다. 내가 겪고있는 작은 문제는 dest 디렉토리의 빈 디렉토리가 생성된다는 것입니다.빈 디렉토리를 복사하는 멍청이

gulp.src glob에 패턴 일치 (예 : 'is_file' 플래그 제공)의 파일 만 포함하도록 말할 수 있습니까?

감사합니다.

답변

8

는 파이프 라인에 필터를 추가하여 수정 :

var es = require('event-stream'); 


var onlyDirs = function(es) { 
    return es.map(function(file, cb) { 
     if (file.stat.isFile()) { 
     return cb(null, file); 
     } else { 
     return cb(); 
     } 
    }); 
}; 
// ... 

var s = gulp.src(globs) 
     .pipe(onlyDirs(es)) 
     .pipe(gulp.dest(folders.dest + '/' + module.folder)); 

// ... 
+0

folder.dest + '/'+ module.folder는 어디에서 왔습니까? 그 (것)들을위한 용기는 어디에 있습니까? – Nick

+0

nvm이 (가) 작동 해 주셔서 감사합니다! – Nick

3

내가이 일에 파티에 늦었을 알고,하지만이 질문에 걸림돌 다른 사람을 위해,이 작업을 수행하는 또 다른 방법이있다 그건 내 눈에 꽤 우아한 것 같습니다. 찾았습니다 this question

빈 폴더를 제외하려면 glob 패턴 다음에 { nodir: true }을 추가했습니다.

귀하의 일반적인 패턴은 (Nick's answer에서 변수를 사용하여) 등이 될 수 :

gulp.src(globs, { nodir: true }) 
    .pipe(gulp.dest(folders.dest + '/' + module.folder)); 

광산이었다 다음과 같이

gulp.src(['src/**/*', '!src/scss/**/*.scss', '!src/js/**/*.js'], { nodir: true }) 
    .pipe(gulp.dest('dev/')); 

이있는 SRC 디렉토리에서 모든 파일을 선택 scss 또는 js 파일이 아니며이 두 디렉토리의 빈 폴더도 복사하지 않습니다.

+0

오늘 저장 14082017 – paranoidhominid