gulp .src()匹配模式详解

记一下gulp.src()用法

# 语法

gulp.src(globs[, options])

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

# 匹配模式

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

# 单匹配
匹配符code匹配不匹配备注
**a.bx.yabcabc/a/b.js不匹配/,除非/出现在末尾
*.*a.bx.yabc匹配所有带后缀的文件
*/*/*.jsa/b/c.jsx/y/z.jsa/b.jsa/b/c/d.js匹配固定层级目录
****abca/ba/b.jsa/b/ca/b/c.js匹配所有的目录和文件
**/*.jsa.jsa/b.jsa/b/c.js匹配所有目录下的 .js 文件
a/**/za/za/b/za/b/c/za/b/c/d/z
a/**b/za/b/za/nb/za/c/nb/z** 单独出现才能匹配多级目录
??.jsa.jsb.jsc.js占位符匹配,不匹配 /
a??a.babcab/占位符与字符搭配使用
[][abc].jsa.jsb.jsc.jsab.jsxyz.js整个 [] 只匹配一个字符
[^abc].js[!abc].jsx.jsy.jsa.jsb.jsc.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)
  • 数组
    • 使用数组匹配多种模式
    gulp.src(['js/*.js', 'css/*.css', '*.html'])
    
    • 数组 + 排除,排除模式不能出现在数组的第一个元素中
    gulp.src([*.js,'!b*.js']) // 匹配所有js文件,但排除掉以b开头的js文件
    gulp.src(['!b*.js',*.js]) // 不排除任何文件,因为排除模式不能出现在数组的第一个元素中
    
  • 展开
    • {} 作为定界符,根据它里面的内容,会展开为多个模式,
      最后匹配的结果为所有展开的模式相加起来得到的结果
        1. a{b, c}d 展开为:abc,acd
        1. a{b,}c 展开为:abc,ac
        1. a{0..3}c 展开为:a0c,a1c,a2c
        1. a{b, c{d, e}f}g 展开为:abg,acdfg,acefg
        1. a{b, c}d{e, f}g 展开为:abdeg,acdeg,abdeg,abdfg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定喵君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值