当前位置: 首页 > news >正文

minimatch 详解:功能、语法与应用场景

一、minimatch 是什么?

minimatch 是一种用于字符串模式匹配的工具库,核心功能是通过简化的正则表达式语法来匹配文件路径或字符串。它广泛应用于前端构建工具(如 Webpack、Gulp)、包管理器(如 npm)以及文件系统操作中,用于高效筛选文件。

  • 工作原理是将 glob 表达式转换为 JavaScriptRegExp 对象。

二、核心语法:通配符与匹配规则

  1. 基础通配符
*:匹配任意数量(包括零个)的任意字符(不包括路径分隔符 /)例:*.js 匹配 index.js、utils.js,但不匹配 src/app.js
?:匹配单个任意字符例:file?.txt 匹配 file1.txt、fileA.txt,不匹配 file.txt
[]:匹配括号内的任意单个字符例:[abc].js 匹配 a.js、b.js,[0-9].txt 匹配数字结尾的文件
!:在括号内表示取反匹配例:[!abc].js 匹配非 a、b、c 开头的 .js 文件
  1. 路径匹配
/:明确路径分隔符,支持递归匹配例:src/**/*.js 匹配 src 目录下所有层级的 .js 文件
**:匹配任意层级的目录(包括空目录)例:**/config.json 匹配根目录或任意子目录下的 config.json
  1. 特殊符号
{}:匹配多个模式中的任意一个(类似正则表达式的 |)
例:{js,css} 匹配 js 或 css,img/{png,jpg} 匹配 img/png 或 img/jpg
!:前缀表示排除匹配(需搭配数组使用)
例:['src/*.js', '!src/test.js'] 匹配 src 下除 test.js 外的所有 .js 文件
+(pattern):扩展 glob 语法,表示匹配一个或多个指定模式

三、典型应用场景

  1. 文件路径匹配
  • React项目.eslintrc.js 文件配置示例
module.exports = {plugins: ['import'],rules: {'import/order': ['error',{// 定义特定模式的分组和位置pathGroups: [{// 匹配 react 相关的 import, 提取到external分组最前pattern: 'react',group: 'external',position: 'before',},{// 把@features下的文件归为internal,注意这里必须是两个**,才可以表示多级目录pattern: '@features/**',group: 'internal',},{// 匹配样式文件的 importpattern: '*.{css,scss,less}',group: 'unknown',patternOptions: { matchBase: true },position: 'after',},],],},
};

四、与正则表达式的区别

  • minimatch(通配符):路径匹配 原生支持 / 分隔符和层级
  • 正则表达式: 路径匹配 需手动处理路径分隔符
http://www.lqws.cn/news/166573.html

相关文章:

  • uniapp+vue3实现CK通信协议(基于jjc-tcpTools)
  • IDEA 包分层显示设置
  • BT Panel密码修改
  • 【Redis】类型补充
  • ROS2--导航仿真
  • sumatraPDF设置深色界面
  • YOLOv11 | 注意力机制篇 | 可变形大核注意力Deformable-LKA与C2PSA机制
  • JTAG与SWD的功能辩解有和相关
  • Mysql主从复制原理分析
  • 缓解停车难:4G地磁如何重构车位分配?
  • proteus8安装教程
  • CppCon 2015 学习:C++ Metaprogrammin
  • 【虚拟机版本号】如果忘记了版本号,这样查找版本号
  • C++虚函数表(虚表Virtual Table,简称vtable、VFT)(编译器为支持运行时多态(动态绑定)而自动生成的一种内部数据结构)虚函数指针vptr
  • 【如何做好应用架构?】
  • YOLOv11 | 注意力机制篇 | 混合局部通道注意力MLCA与C2PSA机制
  • CMake指令:add_definitions
  • 06.最长连续序列
  • 是否存在路径(FIFOBB算法)
  • Java-IO流之缓冲流详解
  • 实现基于Yolo的异常聚集算法
  • 经典算法:回文链表
  • 计算机操作系统知识点总结④【完】
  • 2025年渗透测试面试题总结-ali 春招内推电话1面(题目+回答)
  • linux应急响应检查脚本
  • web第十次课后作业--Mybatis的增删改查
  • Java常用工具类方法详解及使用案例
  • ABP VNext 在 Kubernetes 中的零停机蓝绿发布
  • 用 NGINX 构建高效 POP3 代理`ngx_mail_pop3_module`
  • 计算机组成原理(计算篇)