2016-10-30 49 views
1

我是使用Gulp的初學者,對於什麼是可能的和什麼不可以瞭解很多。我想實現以下目標:如何吞吐壓縮多個文件夾並排除某些文件?

我的設置1個項目:

.dist
├──客戶1
│├──活動-1
││├──項目 - 一個
│││├──CSS(文件夾)
│││├──JS(文件夾)
│││├──圖像(文件夾)
│││├──的index.html
│││└──preview.html

(每個項目都有相同的結構。我有不同的名稱與不同的廣告系列的多個客戶。)

!!我想爲包含所有文件和文件夾的每個項目創建一個zip文件,文件preview.html除外。如果名稱可以是項目的名稱,那會更好。

.dist
├──客戶1
│├──活動-1
││├──項目一
│││├──CSS(文件夾)
│ ││├──JS(文件夾)
│││├──圖像(文件夾)
│││├──的index.html
│││├──preview.html
│││└──project-a.zip(新)

如果我解壓的壓縮文件,我想看看下面的(文件夾不內線):

  • CSS(文件夾和內容)
  • JS(文件夾和內容)
  • 圖像(文件夾和內容)
  • 的index.html

我怎樣才能建立咕嘟咕嘟任務(s)在此拉上我?

+0

['一飲而盡-zip'(https://www.npmjs.com/package/gulp-zip)+ [排除文件/咕嘟咕嘟任務目錄(HTTP://計算器。 com/questions/23384239/excluded-files-directories-from-gulp-task)=這是可能的 –

+0

Hello @SvenSchoenung,還有兩個通配符文件夾之間的特定文件夾? –

+0

你是否想知道如何做到這一點,或者真的只是想知道你的目標是不可能的? – henry

回答

1

你可以在gulp-zip的幫助下做到這一點。

如果要從壓縮中排除特定文件或文件夾,可以使用正則表達式。 檢查這個曾經,Excluding files/directories from Gulp task

見下文:

const gulp = require('gulp'); 
const zip = require('gulp-zip'); 

gulp.task('default',() => { 
    return gulp.src('['js/**/*.js', '!js/**/*.min.js']') // Here I'm excluding .min.js files 
    .pipe(zip('archive.zip')) 
    .pipe(gulp.dest('dist')); 
}); 

如果你想排除或包括任何具體的文件夾或文件,你可以做到這一點與正則表達式也。比方說,如果你想排除與下劃線開頭的文件夾(「_」)從拉鍊符號,你這個樣子,

gulp.src('js/[^_]*/*.js'); // Here I'm excluding folders that start with '_' symbol 

就像,我們在的JavaScript,相同的正則表達式會寫在這裏工作。 希望這有助於:)

+0

謝謝你,它是一個解決方案的一部分,但我仍然想要在特定的文件結構「深度」上定位特定的文件。 –

+0

您想一次壓縮所有項目,還是一次執行一個項目? –

+0

Cinnakotla在某個時間段內在一個活動中創建每個項目的拉鍊將是一件好事...... :-)。因爲如果它會壓縮所有項目,我會每次添加更多的項目,這隻會增加時間。 –

相關問題