2016-10-30 4 views
1

Я новичок в использовании Gulp, и я не знаю много о том, что возможно, а что нет. Я хотел бы добиться следующего:Как глотать zip несколько папок и исключать некоторые файлы?

моя установка 1 проекта:

.dist
├── клиент-1
│ ├── кампании 1
│ │ ├── project-
│ │ │ ├── CSS (папка)
│ │ │ ├── JS (папки)
│ │ │ ├── изображений (папка)
│ │ │ ├── index.html
│ │ │ └── preview.html

(Каждый проект имеет одинаковую структуру. У меня несколько клиентов с разными именами с разными кампаниями.)

!! Я хотел бы сделать zip-файл для каждого проекта со всеми включенными файлами и папками, кроме файла preview.html. Если имя может быть именем проекта, это будет еще лучше.

.dist
├── клиент-1
│ ├── кампании 1
│ │ ├── проект-а
│ │ │ ├── CSS (папка)
│ │ │ ├── JS (папка)
│ │ │ ├── изображений (папка)
│ │ │ ├── index.html
│ │ │ ├── preview.html
│ │ │ └── project-a.zip (новый)

Если я разархивировать ZipFile, я хотел бы видеть следующее (не в папке):

  • CSS (папки и содержание)
  • JS (папки и содержимое)
  • изображений (папки и содержимое)
  • index.html

Как я могу настроить глотком задачу (ы), чтобы сделать это, проносясь для меня?

+0

['gulp-zip'] (https://www.npmjs.com/package/gulp-zip) + [исключая файлы/каталоги из задачи Gulp] (http: // stackoverflow. com/questions/23384239/excluding-files-directories-from-gulp-task) = возможно –

+0

Привет @SvenSchoenung, а также конкретные папки с подстановочными папок между ними? –

+0

Вам было интересно, как это сделать, или действительно просто интересно, ваша цель невозможна? – henry

ответ

1

Вы можете сделать это с помощью gulp-zip.

Если вы хотите исключить определенные файлы или папки из zipping, вы можете использовать регулярные выражения amke. Проверить этот раз, 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 Было бы неплохо создать zip каждого проекта в одной кампании за раз ... :-). Потому что, если он будет заархивировать все проекты, я бы каждый раз добавлял больше проектов, это только добавило бы времени. –

Смежные вопросы