首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从Gulp-Zip任务foreach循环中排除文件夹

在Gulp中,可以使用gulp-zip插件来创建压缩文件。如果想要在压缩过程中排除特定文件夹,可以通过使用gulp-filter插件和gulp-ignore插件来实现。

首先,需要安装所需的插件:

代码语言:txt
复制
npm install gulp-zip gulp-filter gulp-ignore --save-dev

然后,在gulpfile.js文件中引入这些插件:

代码语言:txt
复制
const gulp = require('gulp');
const zip = require('gulp-zip');
const filter = require('gulp-filter');
const ignore = require('gulp-ignore');

接下来,可以创建一个任务来压缩文件,并在其中排除特定文件夹。例如,假设要排除名为"excludeFolder"的文件夹:

代码语言:txt
复制
gulp.task('zip', function() {
  // 创建一个过滤器,排除"excludeFolder"文件夹
  const excludeFilter = filter(['**/*', '!excludeFolder/**']);

  return gulp.src('src/**/*') // 选择要压缩的文件
    .pipe(excludeFilter) // 应用过滤器
    .pipe(zip('archive.zip')) // 压缩文件为"archive.zip"
    .pipe(gulp.dest('dist')); // 将压缩文件保存到"dist"目录中
});

在上面的代码中,首先创建了一个过滤器excludeFilter,使用gulp-filter插件来排除"excludeFolder"文件夹。然后,使用gulp.src选择要压缩的文件,通过excludeFilter过滤器排除指定文件夹,接着使用gulp-zip插件将文件压缩为"archive.zip",最后使用gulp.dest将压缩文件保存到"dist"目录中。

这样,运行gulp zip命令即可执行该任务,生成排除指定文件夹的压缩文件。

推荐的腾讯云相关产品:腾讯云对象存储(COS),它是一种高可用、高可靠、低成本的云端存储服务,适用于存储和处理大规模非结构化数据。您可以通过以下链接了解更多信息:腾讯云对象存储(COS)

请注意,以上答案仅供参考,具体实现方式可能因项目需求和环境而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • gulp自动化打包(上)

    53047467 gulp自动化打包(上) ---- 文章概述 本文分为上下两篇,上篇主要介绍一些常用的gulp插件(也是此次打包主要用的gulp插件),而下篇主要以一个demo项目为例,本地...图中主要演示项目中大概会有的几种文件类型,fonts(ttf,svg),image(jpg,png),js,less(sass),实际项目会复杂得多,开始一个项目的时候,可以直接git上拿一个angular-seed...开发中经常会遇到的应用场景是提供不同的参数,即动态参数,对应到gulp,如果我们需要在命令行手动输入某个参数,此时就可以用minimist把他从命令行“提取”出来。...gulp-zip 将src的各种文件,打成一个zip包,演示代码: var zip = require('gulp-zip'); gulp.task('zip', () { gulp.src...,在实际场景,不允许我们同时跑很多任务,因为任务之间往往是相互依赖的,此时run-sequence就是一个很好的选择,他可以让多个任务按照写入顺序执行,同时可以控制哪些任务并行跑,哪些按照顺序跑。

    1.7K30

    JGulp: 利用Gulp 配置的前端项目自动化工作流

    引子 在苦苦构思了上面的开头后,“效率”这个词Jeff 引出了今天话题——也就是标题说的前端项目自动化工作流。...文件清理功能(gulp-clean) 在项目完成可以删除一些多余的文件 任务错误中断自动重传(gulp-plumber) 好吧,“任务错误中断自动重传”是我瞎命名的。...默认的 Gulp 任务在执行过程如果出错会报错并立即停止当前工作流(如在 watch Sass编译时候恰巧 Sass代码写错了)。使用plumber 模块可以在纠正错误后继续执行任务。...自动打包并按时间重命名(gulp-zip) 一般项目完成后需要整理文件并压缩以供交付使用或进行下一阶段的开发,本模块可以实现将项目文件自动打包并按时间重命名。...4、然后捏,就基本上可以的了,默认任务: $ gulp 5、如果项目已经完成,可以通过build 命令进行项目相关文件收集,项目文件最终会汇集到项目目录下的build 文件夹中方面进一步操作 $ gulp

    1.1K100

    如何在 Bash 中使用循环

    在编程术语,这被称作执行控制,for 循环就是其中最常见的一种。 for 循环可以详细描述你希望计算机对你指定的每个数据对象(比如说文件)所进行的操作。...例如在下面的例子,不要在你的终端的第 2、3 行键入 foreach? 。它只是提示你仍处在构建循环的过程。 $ foreach f (*) foreach? file $f foreach?...foreach 和 end 都必须单独的在一行中出现。...-maxdepth 2 -name "*png" find 命令默认是查找每一级文件夹循环的乐趣与收益 你使用的循环越多,你就可以越多的省下时间和力气,并且可以应对庞大的任务。...虽然你只是一个用户,但是通过使用循环,可以使你的计算机完成困难的任务。 你可以并且应该就像使用其他的命令一样使用循环。在你需要重复处理单个或多个文件时,尽可能的使用这个命令。

    1.6K10

    gulp自动化打包(下)

    minifyCss = require('gulp-minify-css'), minify = require('gulp-minify'), zip = require('gulp-zip...后面也可以跟某一类型文件,或者直接指定某文件夹。...,按顺序执行(方括号里面4个任务,算作一个任务),而且前一个跑完才会跑后一个,方括号里的是异步的,即不一定哪个先完成。...2.要想达到第一点里面的同步执行(一个任务完成才开始下一个),一定要保证前面的所有任务,即除了ftp任务,其余的方法一定要是return出来的,即: 正确写法: gulp.task('js', function...清理dist目录 写到这里,还有一个问题,就是没有对文件夹进行清理,这也是比较重要的,在每一次开始打包工作之前,我们需要清理dist目录,以保证下一次打包不会被上一次打包的文件“污染”。

    1.3K20

    C# 多线程七之Parallel

    Parallel本身的性能消耗,所以,这也能解释为什么,你的循环里面执行的是不耗时的操作,使用for或者foreach的速度比使用Parallel的要快,所以使用Parallel还是要慎重.而且使用Parallel...还需要注意的一点就是,不能有多线程争用问题,就是你的循环体里面不能有操作静态资源的操作.如果真的需要,那你可以加锁,但是那就失去它的优势了. 2、使用注意点 (1)、不能操作共享资源,代码如下:...这个肯定是正确的值,因为每次的输出都是这个,这里因为如果给循环的最终值设小的话,他好像是同步去做了,不会有问题,所以这里给了个100000,这个时候它会开多个线程去做. (2)、它可以向Task一样抛出异常...我执行了N次,发现并没有一个文件多个线程读的问题,所以每个线程只会去读一个文件,自然就不会有多线程争用问题了. (2)、关于ParallelLoopState的用法 Stop()和Break方法最常用,当子任务处理批量的任务时...,如果满足某种条件,则告诉其余的任务不需要在处理了.

    1.3K40

    如何在Bash编写循环

    f ; done 然后在tmp文件夹查看缩放后的照片。...在以下代码示例,是否不键入字符串foreach?在第2行和第3行。它是辅助提示,提醒您仍在构建循环的过程。 $ foreach f (*) foreach? file $f foreach?...foreach和end都必须单独出现在单独的行,因此不能像使用Bash和类似的shell那样在一行上创建for循环。...使用find命令执行for循环 理论上讲,您可能会发现一个不提供for循环函数的shell,或者您可能只是更喜欢使用带有附加功能的其他命令。...小延伸 使用循环的次数越多,节省的时间和精力就越多,可以处理的任务也就越大。您只是一个用户,但是经过深思熟虑的循环,您可以使计算机完成艰苦的工作。

    2.4K10

    vue多选框的选中问题和主动取消回显问题

    第一个问题:选中问题 项目是用的element ui 的 那个级联选择器,为了实现一个需求:当手动全选某个父数据下的子数据后,右边自动显示当前所有子数据的父数据 之前一个同事为了实现这个需求写了一大串的代码...js 也没实现,四级联动,感觉太复杂,后来找到一个方法: 这个方法可以获取到自己选中的节点几乎所有的属性(包括是否选中,下级列表等等),然后根据规则: 自己存在并且自己的父级也存在而且选中了,那就排除本身...(item.parent && item.parent.checked)); let selectData = []; checkArr.forEach(item=>{ selectData.push...这个问题是很简单,只要拿到要取消的元素,在循环排除取消元素的子数据就行。...我开始用的forEach循环,逐个判断然后再splice,发现一直会漏删,最后找到原因: 解决办法:使用 for 循环,倒叙删除,代码如下 /* 获取需要删除id列表 */

    2.2K41

    设计一个缓存策略,动态缓存热点数据

    LRU是一种常见的算法,假如我们设定TOP10的热点数据,那么我们可以规定LRU容量为10,当容量没有满的时候,我们可以直接放入,当满了的时候我们就将最后一个排除然后引入最新的放在首部 这看似实现了热点排行但是没有...,比如说2号数据访问100次而11号数据才访问一次,那么使用LRU就把100次访问的排除掉了,这就是不合理的,所以我们应该以每个数据的访问频率来选择排行 如何进行访问率排行 把所有数据都加入内存,...10条数据,然后如果有人访问了这10条数据,那么对应的数据的访问频率就加一,不在这10条数据里面就不去管它,然后经过一段时间就去掉末尾几条访问频率较低的数据,再随机挑选几条假如TOP10,然后循环 第二种...PolicyEntity.class); res.add(policyEntity); }); return res; } 接下来就是实现定时任务的代码编写...,我使用的是Quartz编写定时任务,这个实现定时任务还是有着其它的方法,如果有兴趣的大佬可以去尝试尝试 编写任务 删除最后五个然后在数据库随机挑选五个加入其中 @Component public class

    1.1K20

    Smarty的基本使用与总结

    最佳的实践是PHP将需要的变量对模板进行赋值再使用。...5.9、while   Smarty的while循环和PHP的while循环是几乎一样的,smarty需要在后面增加来结束 ?   例子: ? ? 结果: ?...在smarty中使用foreach和我们在PHPforeach循环几乎是一样的,就是书写的方式不一样,但形式上是一样的!...foreach具有一些内部关键字: 1、@iteration,当前循环次数,1开始 2、@index,表示当前索引,从零开始 3、@first当前是首次循环是,first为true 4、@last循环最后一次时...,last为true 5、@show,是在{foreach}循环执行后,,检测循环是否有输出,show是一个布尔值 6、@total,{foreach}的循环次数,total可以在{foreach}内部

    1.4K30

    yii2使用Migrations为整个数据库表创建迁移

    大家都知道Migrations是一个在开发和维护数据库驱动的应用过程,数据库的结构与源代码的开发同步更新。...下面foreach循环就是为了等下输出的时候方便(Non_unique在作者这里原以为用Migrations新增索引的时候能该类型,所以就写上去了,谁知道后面发现索引类型,已经写死了,必须为unique...例如,在mysql类型是:smallint 但我在Migrations必须是 smallinteger 包括 bigint 也要改为 biginteger,目前我就发现这两个不一样,其他的暂时还没遇到...然后我们开始输出主键字段(并不是自增的哦~自增的如果存在就已经在上面输出了,这里的代码只处理主键字段)我们先判断数组是否存在且数组个数大于0,这里不能使用foreach循环主键数组,因为$this->...我们先将所有表备份一份并导出到本地(以防万一,我不舍得你们跑路啊),确保所有表都在的时候,我们就是用命令执行console任务

    1.9K31

    【译】现代化的PHP开发--迭代器Iterator

    基本上,此功能通过Github的公共API来Github获取前10个已启动的PHP存储库,并将它们存储到$repos属性。 private $repos:我们使用此属性来存储获取的存储库。...3.1、封装形式 在我们的第一个迭代器TrendingRepositoriesIterator,遍历Github存储库的详细信息外部获取,在内部隐藏完成。...在我们的TrendingRepositoriesIterator类,我们实际上可以动态地获取资源,这意味着仅当调用next()方法时,才Github API获取数据。这种技术被称为懒加载。...我们想从资源中排除“ laravel”。一种明显的方法是更新我们的原始类,尽管这当然不是我们在此要做的。...5、ArrayObject与SPL ArrayIterator 在PHP,数组是八种基本类型之一。PHP提供了79个函数来处理与数组相关的任务(参考)。

    2.2K30

    robocopy的用法,数据库局域网备份

    /PURGE:删除源不再存在的目标文件/目录。 /MIR:镜像目录树(等同于 /E 和 /PURGE)。 /MOV:移动文件(复制后删除)。 /MOVE:移动文件和目录(复制后删除)。.../A-:[RASHCNET]:复制文件删除给定的属性。 /CREATE:仅创建目录树和长度为零的文件。 /FAT:仅使用 8.3 FAT 文件名创建目标文件。...look /s /in*.txt /in*.doc /sg /yy /da:2004-02-02 /DB:2004-02- 10/DA:1997-01-01   [参数讲解]   此命令将d:\work...上面的命令将复制源文件夹全部文件,但全部具有隐藏属性的文 件将不会被复制。/xa:h,表示将具有隐藏属性的排除出复制范围,与之相对应的是/ia,表示包括只对 拥有指定属性的执行操作。...1.清除所有无用文件 xxcopy d:\work*.tmp /s /h /yy /rs /rs表示不复制而直接文件夹删除指定文件,/h表示指定隐藏和系统文件。

    1.6K50

    robocopy的用法,数据库局域网备份

    /PURGE:删除源不再存在的目标文件/目录。 /MIR:镜像目录树(等同于 /E 和 /PURGE)。 /MOV:移动文件(复制后删除)。 /MOVE:移动文件和目录(复制后删除)。.../A-:[RASHCNET]:复制文件删除给定的属性。 /CREATE:仅创建目录树和长度为零的文件。 /FAT:仅使用 8.3 FAT 文件名创建目标文件。...look /s /in*.txt /in*.doc /sg /yy /da:2004-02-02 /DB:2004-02- 10/DA:1997-01-01   [参数讲解]   此命令将d:\work...上面的命令将复制源文件夹全部文件,但全部具有隐藏属性的文 件将不会被复制。/xa:h,表示将具有隐藏属性的排除出复制范围,与之相对应的是/ia,表示包括只对 拥有指定属性的执行操作。...1.清除所有无用文件 xxcopy d:\work*.tmp /s /h /yy /rs /rs表示不复制而直接文件夹删除指定文件,/h表示指定隐藏和系统文件。

    2.3K20
    领券