gulp .src()匹配模式详解

举报
薛定喵君 发表于 2021/06/04 00:22:41 2021/06/04
【摘要】 记一下gulp.src()用法 # 语法 gulp.src(globs[, options]) globs:文件匹配模式(类似正则表达式),用来匹配文件路径(包括文件名)options:可选参数。通常情况不需要用到 gulp.src('**/*.js') # 匹配模式 内部使用node-glob模块实现文件匹配 # 单匹配 匹配符...

记一下gulp.src()用法

# 语法

gulp.src(globs[, options])

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

   

# 匹配模式

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

# 单匹配

匹配符 code 匹配 不匹配 备注
* * a.bx.yabcabc/ a/b.js 不匹配/,除非/出现在末尾
*.* a.bx.y abc 匹配所有带后缀的文件
*/*/*.js a/b/c.jsx/y/z.js a/b.jsa/b/c/d.js 匹配固定层级目录
** ** abca/ba/b.jsa/b/ca/b/c.js 匹配所有的目录和文件
**/*.js a.jsa/b.jsa/b/c.js 匹配所有目录下的 .js 文件
a/**/z a/za/b/za/b/c/za/b/c/d/z
a/**b/z a/b/za/nb/z a/c/nb/z ** 单独出现才能匹配多级目录
? ?.js a.jsb.jsc.js 占位符匹配,不匹配 /
a?? a.babc ab/ 占位符与字符搭配使用
[] [abc].js a.jsb.jsc.js ab.jsxyz.js 整个 [] 只匹配一个字符
[^abc].js[!abc].js x.jsy.js a.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'])
    
         
    • 数组 + 排除,排除模式不能出现在数组的第一个元素中
    
          
    1. gulp.src([*.js,'!b*.js']) // 匹配所有js文件,但排除掉以b开头的js文件
    2. 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

文章来源: blog.csdn.net,作者:薛定喵君,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jsxg2009/article/details/115244234

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。