利用gulp-if用文件名为条件做过滤

最近在给公司的项目做版本管理,由于我们项目的奇葩性,框架的特性,以及我们gulpfile本身的复杂性,让这个工作进行得非常困难且痛苦,好在最终是解决了问题。中间各种绞尽脑汁的不尽述,把这个有参考价值的点拿出来跟大家分享一下。

当时有个要做的事情是,对一个文件夹中的某些js做文件名替换,目录结构大致如下:

|----src
|--------test.js
|--------testTpl.js
|--------test2.js
|--------test2Tpl.js
.....
我们要执行一个gulp任务,把名字中有tpl的文件找出来做代码内容中的文件版本替换。这里需要对当前目录的文件做过滤,但是gulp的node-glob语法决定了它只支持目录、文件类型的过滤。我们需要的是对文件名做过滤的东西,因此需要做条件判断的插件

搜索得到gulp-if,这个gulp插件给我们提供了gulp操作中条件设置的可能,官网的示例代码只是做了简单的true/false的判断来选择性处理某些流程,比较简单。

官网示例代码

condition这个函数接收file值,然后通过逻辑代码的判断,返回true/false就可以达到目的。但是我们这个是对文件名的判断,遍访资源也没有看到这种做法的案例。最后想起gulp的path模块是可以获取当前路径的,当然也就包括文件名啦。最终顺利的用path+gulp-if对文件名的判断,过滤掉了不需要操作的文件,完成任务。示例代码如下:

gulp-if示例代码

代码应该简单明了吧,希望能给大家一个参考。

ps:现在看着很简单的代码,当时是想了很久才想到的解决方案,也许当时超负荷的脑子太笨,也许大家从来不认为实现对文件名的过滤是什么难事,那麻烦能给我分享一下你的方法,非常感谢 (手动萌~^v^~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在现在的前端开发中,前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等等一些原本后端的思想开始...
    Charlot阅读 5,498评论 1 32
  • 对网站资源进行优化,并使用不同浏览器测试并不是网站设计过程中最有意思的部分,但是这个过程中的很多重复的任务能够使用...
    懵逼js阅读 1,093评论 0 8
  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    依依玖玥阅读 3,185评论 7 55
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,982评论 19 139
  • 1、gulp的安装 首先确保你已经正确安装了nodejs环境。然后以全局方式安装gulp: npm install...
    F_imok阅读 2,402评论 1 11