我是使用Gulp的初学者,我不太了解什么是可能的,什么不是。我想实现以下目标:
我对1个项目的设置:
.dist
├──客户-1
│├──活动-1
││├──项目-a
│││├──css(文件夹)
│││├──js(文件夹)
│││├──图像(文件夹)
│││├──index.html
│││└──preview.html
(每个项目都有相同的结构。我有多个客户端,不同的名称和不同的广告系列。)
!!我想为每个项目制作一个包含所有文件和文件夹的zip文件,但文件 preview.html 除外。如果名称可以是项目的名称,那就更好了。
.dist
├──客户-1
│├──活动-1
││├──项目-a
│││├── css(文件夹)
│││├── js(文件夹)
│││├──图像(文件夹)
│││├── index.html
│││├── preview.html
│││└── project-a.zip (新)
如果我解压缩zip文件,我想看到以下内容(不在文件夹中):
如何设置Gulp任务为我做这个拉链?
答案 0 :(得分: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'));
});
如果要排除或包含任何特定文件夹或文件,也可以使用正则表达式执行此操作。比方说,如果你想从 zip 中排除以下划线('_')符号开头的文件夹,你会这样做,
gulp.src('js/[^_]*/*.js'); // Here I'm excluding folders that start with '_' symbol
就像我们在 javascript 中写的一样,同样的正则表达式也适用于此。 希望这会有所帮助:)