亮神知识库 亮神知识库
首页
  • 手写代码

    • 手写代码系列
  • 基础知识

    • 基础
    • JS底层
    • CSS
  • 原理
  • 浏览器
  • HTTP
  • 网络安全
  • babel
  • webpack基础
  • webpack进阶
  • Vite
  • TypeScript
  • Vue2
  • Vue3
  • Node基础

    • glob
    • 模块化机制
    • 事件循环
    • KOA2框架原理
    • Node子进程
    • cluster原理(了解)
  • 教育行业2021

    • B端
    • C端
    • 工具
  • 游戏行业2025
  • 刷题
  • 杂(待整理)
  • 学习
  • 面试
  • 实用技巧
  • 心情杂货
  • 年度总结
  • 友情链接
关于
  • 分类
  • 标签
  • 归档
  • 收藏
GitHub (opens new window)

亮神

前程明亮,未来可期
首页
  • 手写代码

    • 手写代码系列
  • 基础知识

    • 基础
    • JS底层
    • CSS
  • 原理
  • 浏览器
  • HTTP
  • 网络安全
  • babel
  • webpack基础
  • webpack进阶
  • Vite
  • TypeScript
  • Vue2
  • Vue3
  • Node基础

    • glob
    • 模块化机制
    • 事件循环
    • KOA2框架原理
    • Node子进程
    • cluster原理(了解)
  • 教育行业2021

    • B端
    • C端
    • 工具
  • 游戏行业2025
  • 刷题
  • 杂(待整理)
  • 学习
  • 面试
  • 实用技巧
  • 心情杂货
  • 年度总结
  • 友情链接
关于
  • 分类
  • 标签
  • 归档
  • 收藏
GitHub (opens new window)
  • node

    • glob
      • 单个星号
      • 问号
      • 中括号
      • 惊叹号
      • 两个星号
    • 模块化机制
    • 事件循环
    • KOA2框架原理
    • Node子进程
    • cluster原理(了解)
  • 服务端
  • node
0zcl
2025-06-19
目录

glob

需求:在前端工程化的过程中,不可避免地会用 Node.js 来读取文件,例如想找到 src 目录下所有 js 和 jsx 文件

const glob = require('glob')
const files = glob.sync('src/**/*.js{,x}')
console.log(files)
1
2
3

# 单个星号

概念:单个星号 * 用于匹配单个片段中的零个或多个字符

  • src/*.js 表示 src 目录下所有以 js 结尾的文件,但是不能匹配 src 子目录中的文件,例如 src/login/login.js
  • /home/*/.bashrc 匹配所有用户的 .bashrc 文件
需要注意的是,* 不能匹配分隔符 /,也就是说不能跨片段匹配字符
1

# 问号

概念:? 匹配单个片段中的单个字符

  • test/?at.js 匹配形如 test/cat.js、test/bat.js 等所有3个字符且后两位是 at 的 js 文件,但是不能匹配 test/flat.js
  • src/index.?? 匹配 src 目录下以 index 打头,后缀名是两个字符的文件,例如可以匹配 src/index.js 和 src/index.md,但不能匹配 src/index.jsx

# 中括号

概念:同样是匹配单个片段中的单个字符,但是字符集只能从括号内选择,如果字符集内有 -,表示范围。

  • test/[bc]at.js 只能匹配 test/bat.js 和 test/cat.js
  • test/[c-f]at.js 能匹配 test/cat.js、test/dat.js、test/eat.js 和 test/fat.js

# 惊叹号

概念:表示取反,即排除那些去掉惊叹号之后能够匹配到的文件。

  • test/[!bc]at.js 不能匹配 test/bat.js 和 test/cat.js,但是可以匹配 test/fat.js
  • !test/tmp/**' 排除 test/tmp 目录下的所有目录和文件

# 两个星号

概念:两个星号 ** 可以跨片段匹配零个或多个字符。即 ** 是递归匹配所有文件和目录

  • /var/log/** 匹配 /var/log 目录下所有文件和文件夹,以及文件夹里面所有子文件和子文件夹
  • /var/log/**/*.log 匹配 /var/log 及其子目录下的所有以 .log 结尾的文件
  • /home//.ssh/**/.key 匹配所有用户的 .ssh 目录及其子目录内的以 .key 结尾的文件

参考:https://juejin.cn/post/6876363718578405384

编辑 (opens new window)
上次更新: 2025/07/17, 07:17:44
模块化机制

模块化机制→

最近更新
01
2024年
07-20
02
2023年
07-20
03
2022年
07-20
更多文章>
Theme by Vdoing | Copyright © 2025-2025 亮神 | MIT License | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式