Gulp JS를 사용하기 시작했으며 정말 유용하다고 인정해야합니다.Gulp Zip을 사용하여 zip 파일을 압축하는 방법
수행해야 할 작업 중 하나는 폴더 모음을 개별 zip 파일로 압축하여 각 폴더마다 하나씩 압축 한 다음이 모든 압축 파일을 하나의 단일 zip 파일로 압축하는 것입니다. 내가 관리했습니다 꿀꺽 - 우편 번호를 사용하면 여기까지 얻을 수 있습니다 :
var modelFolders = [
'ELFH_Check',
'ELFH_DDP',
'ELFH_Free'
];
gulp.task('zipModels', function() {
for (var i = 0; i < modelFolders.length; i++) {
var model = modelFolders[i];
gulp.src('**/*', {cwd: path.join(process.cwd(), '/built_templates/' + model) })
.pipe(zip(model + '.zip'))
.pipe(gulp.dest('./built_templates'));
};
});
이 작동하고 ELFH_Check.zip, ELFH_DDP.zip 및 ELFH_Free.zip를 출력합니다. 그러나, 나는 다음 작업이 작업을 얻을 "Templates.zip"난 관리 적이 없다라는 하나 개의 zip 파일에이 zip 파일을 압축해야합니다
이// zip up model files
gulp.task('zipTemplate', ['zipModels'], function() {
gulp.src('*.zip', {cwd: path.join(process.cwd(), './built_templates/') })
.pipe(zip('Templates_.zip'))
.pipe(gulp.dest('./built_templates'));
});
사람이 알고 있나요이 가능하거나 어떤 경우 내가 잘못하고있어?
그는 zipModels 작업에서 스트림을 반환하지 않는다는 점을 제외하면 그의 솔루션이 효과가있었습니다. 그러나 임시 파일을 사용하지 않기 때문에 솔루션이 더 좋습니다. – OverZealous
감사합니다. 위에서 제시 한 코드를 사용했고 실제로 잘 작동합니다. 또한 간단한 스트림을 사용하고 임시 파일 사용을 피하는 것에 대한 요점을 이해합니다. 불행히도 임시 파일을 사용하지 않아도 Gulp의 zip 프로세스는 32 초 걸리고 7 zip을 호출하는 배치 파일은 약 7-9 초 걸립니다. 내가 생각할 수있는 유일한 해결책은 내 gulp.js 파일에서 gulp-exec을 사용하여 대신 7 zip을 호출하는 것입니다. 나는 다른 제안에 열리다. – Robini
기본 질문과 조금 다른 것 같아요. 다른 질문을 열어보십시오. 그러나 성능 향상을 원하면'exec'를 호출해야 할 수도 있습니다. 그 문제는 없습니다. 그래도 플러그인을 작성하고'gulp.src'에'{read : false}'를 전달하는 것을 고려해보십시오. 실제로 파일의 내용은 필요 없으므로 pat 만 사용하십시오. 가장 좋은 방법은 내용을 명령 줄 유틸리티로 파이프하는 것이지만 [zip 파일을 허용하지 않습니다] (http://sevenzip.sourceforge.jp/chm/cmdline/switches/stdin.htm), 7Zip. –