@pufflik

Как задать правильную структуру файлов и папок с помощью gulp-zip?

Хочу создать задачу, собирающую исходные файлы в архив, но при этом игнорирующую папки node_modules и packages. Для этого подключил плагин gulp-zip.

Попробовал два подхода, но ни один не устраивает полностью.

Первый вариант:
gulp.task('zip', function() {
    gulp.src(['**/*.*', '!packages/**/*', '!node_modules/**/*'])
        .pipe(zip(packageinfo.name + '.zip'))
        .pipe(gulp.dest(baseFolder.build));
});


Делает то, что нужно, но очень медленно.

Второй вариант, более для меня предпочтительный:
gulp.task('zip', function() {
    gulp.src(['*.*', 'src/**/*'])
        .pipe(zip(packageinfo.name + '.zip'))
        .pipe(gulp.dest(baseFolder.build));
});


Работает быстро, но кидает только содержимое папки src/ в архив, а не саму папку src/ с ее содержимым.

Подозреваю, что можно как-то решить вопрос с помощью настроек gulp.src, но не могу определиться.
  • Вопрос задан
  • 491 просмотр
Решения вопроса 1
standy
@standy
Нужно добавить options.base
По умолчанию это всё, что до * в пути, вам же нужно указать его прямо:
gulp.task('zip', function() {
    gulp.src(['*.*', 'src/**/*'], {base: './'})
        .pipe(zip(packageinfo.name + '.zip'))
        .pipe(gulp.dest(baseFolder.build));
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы