专栏首页喵君手记gulp .src()匹配模式详解

gulp .src()匹配模式详解

记一下gulp.src()用法

语法

gulp.src(globs[, options])

  • globs:文件匹配模式(类似正则表达式),用来匹配文件路径(包括文件名)
  • options:可选参数。通常情况不需要用到
js
gulp.src('**/*.js')

匹配模式

内部使用node-glob模块实现文件匹配

单匹配

匹配符

code

匹配

不匹配

备注

*

*

a.b, x.y, abc, abc/

a/b.js

不匹配/,除非/出现在末尾

*.*

a.b, x.y

abc

匹配所有带后缀的文件

*/*/*.js

a/b/c.js, x/y/z.js

a/b.js, a/b/c/d.js

匹配固定层级目录

**

**

abc, a/b, a/b.js, a/b/c, a/b/c.js

匹配所有的目录和文件

**/*.js

a.js, a/b.js, a/b/c.js

匹配所有目录下的 .js 文件

a/**/z

a/z, a/b/z, a/b/c/z, a/b/c/d/z

a/**b/z

a/b/z, a/nb/z

a/c/nb/z,

** 单独出现才能匹配多级目录

?

?.js

a.js, b.js, c.js

占位符匹配,不匹配 /

a??

a.b, abc

ab/

占位符与字符搭配使用

[]

[abc].js

a.js, b.js, c.js

ab.js, xyz.js

整个 [] 只匹配一个字符

[^abc].js[!abc].js

x.js, y.js

a.js, b.js, c.js

排除匹配字符

多匹配模式(同时使用多种匹配)

  • 类正则

表达式

备注

!(pattern|pattern|pattern)

匹配任何与括号中给定的任一模式都不匹配的

?(pattern|pattern|pattern)

匹配括号中给定的任一模式0次或1次,类似于js正则中的(pattern|pattern|pattern)?

+(pattern|pattern|pattern)

匹配括号中给定的任一模式至少1次,类似于js正则中的(pattern|pattern|pattern)+

*(pattern|pattern|pattern)

匹配括号中给定的任一模式0次或多次,类似于js正则中的(pattern|pattern|pattern)*

@(pattern|pattern|pattern)

匹配括号中给定的任一模式1次,类似于js正则中的(pattern|pattern|pattern)

  • 数组
    • 使用数组匹配多种模式
    js
    gulp.src(['js/*.js', 'css/*.css', '*.html'])
    • 数组 + 排除,排除模式不能出现在数组的第一个元素中
    js
    gulp.src([*.js,'!b*.js']) // 匹配所有js文件,但排除掉以b开头的js文件
    gulp.src(['!b*.js',*.js]) // 不排除任何文件,因为排除模式不能出现在数组的第一个元素中
  • 展开
    • {} 作为定界符,根据它里面的内容,会展开为多个模式, 最后匹配的结果为所有展开的模式相加起来得到的结果
  1. a{b, c}d 展开为:abc,acd
  2. a{b,}c 展开为:abc,ac
  3. a{0..3}c 展开为:a0c,a1c,a2c
  4. a{b, c{d, e}f}g 展开为:abg,acdfg,acefg
  5. a{b, c}d{e, f}g 展开为:abdeg,acdeg,abdeg,abdfg

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • gulp命令执行报错解决

    薛定喵君
  • electron-vue打包不同平台的安装包

    薛定喵君
  • nodejs开发辅助工具nodemon

    Nodemon默认会监听当前目录下(也就是执行nodemon命令所在的目录)的所有文件 可以通过设置 Nodemon 的配置文件排除

    薛定喵君
  • 谈谈webpack2的一些事

    从v1迁移到v2 1. 配置类型 在webpack1的时候,主要是通过导出单个object来进行配置。例如下面的配置: // webpack1 导出方式 mod...

    糊糊糊糊糊了
  • webpack学习(二):先写几个webpack基础demo

    一、先写一个简单demo1 1-1安装好webpack后创建这样一个目录: ? 1-2:向src各文件和dist/index.html文件写入内容: <!DO...

    柴小智
  • Fiddler 使用fiddler发送捕获的请求及模拟服务器返回

    本例的一个目的是,根据服务器返回js脚本名称,有选择的让浏览器执行本地的js脚本文件。

    授客
  • 前后端分离之vue2.0+webpack2 实战项目 -- webpack介绍

    webpack的一点介绍 Webpack 把任何一个文件都看成一个模块,模块间可以互相依赖(require or import),webpack 的功能是把相互...

    smy
  • 11、webpack从0到1-CodeSplitting代码分割

    Ewall
  • Node.js 技术栈学习指南(含思维导图)

    Node.js 技术栈 是由作者 “五月君” 于 2019 年 4 月梳理之后最早开源于 Github,同时注册了微信公众号「Nodejs技术栈」。本文档包含了...

    五月君
  • Node.js 技术栈学习指南(含思维导图)

    说明:大致方向不会变,中间细节部分之后可能会修改,欢迎关注公众号「Nodejs技术栈」回复 “思维导图” 查看最新版学习指南

    用户1462769

扫码关注云+社区

领取腾讯云代金券