Vite和pnpm都在用的tinyglobby文件匹配库

大家好,我是农村程序员,独立开发者,行业观察员,前端之虎陈随易。我会在这里分享关于 独立开发编程技术思考感悟 等内容,欢迎关注。

技术群与交朋友请在个人网站联系我,网站 1️⃣:chensuiyi.me,网站 2️⃣:me.yicode.tech

如果你觉得本文有用,一键三连 (点赞评论转发),就是对我最大的支持~


文件匹配库,作用就是使用 glob 语法,来匹配并查找文件的。

js 复制代码
import { glob, globSync } from 'tinyglobby';

await glob(['files/*.ts', '!**/*.d.ts'], { cwd: 'src' });
globSync('src/**/*.ts', { ignore: '**/*.d.ts' });

比如本文分享的 tinyglobby,使用方法如上 👆,从当前目录的 src 目录下,匹配 files 目录下的所有 ts 文件,并排除 .d.ts 类型定义文件。

一个 * 表示匹配任意文件名,2 个 ** 表示匹配多个嵌套目录,感叹号 ! 表示排除某些文件,这就是 glob 匹配语法。

这种方法,比我们通过原始的 fs 模块去读取目录,再去根据正则过滤文件名要方便很多,所以很多流行的库都在使用,比如 vitepnpmvitestlernanuxtastrovitepress 等等。

而同类型的匹配库还有 fast-globglobby 等等,但以上列举的流行项目都不谋而合地使用 tinyglobby,那么 tinyglobby 究竟有什么魔魅力呢?。

我们通过依赖关系图来查看一下,地址:https://node-modules.dev

👆 globby 依赖关系图。

👆 fast-glob 依赖关系图。

👆 tinyglobby 依赖关系图。

从依赖包数量上来说,globby 23 个,fast-glob 17 个,tinyglobby 3 个,tinyglobby 完胜。

同时呢,根据 tinyglobby 的官方说明来看:

globbyfast-glob 展现了一些其他 globbing 库所没有的行为,这使得手动替换成更小更好的版本变得困难。

也就是跟其他文件匹配库比起来,fast-globglobby 都或多或少有一些自己的个性化,导致在某些比较特殊的情况下兼容比较麻烦。

tinyglobby 创建于2024年7月,到现在刚好1年时间,属于比较新的项目,同时也能更好地站在前人的肩膀上,做得更好。

开源地址:https://github.com/SuperchupuDev/tinyglobby

在 AI 大行其道的今天,虽然很多编程问题它都能解决,甚至表面看起来做得更好,但精益求精的问题,还是需要用我们自己的双手双眼去维护。

相关推荐
计算机学姐10 小时前
基于SpringBoot的演出购票系统【2026最新】
java·vue.js·spring boot·后端·spring·tomcat·intellij-idea
用户68026590511910 小时前
2025年十大终端管理软件推荐指南
vue.js·后端·面试
孜孜不倦不忘初心10 小时前
Axios 常用配置及使用
前端·axios
sTone8737510 小时前
vscode 二开踩坑记录
前端
用户81686947472510 小时前
Effect 执行时机与事件循环交错关系
前端·react.js
ServBay11 小时前
.NET 10 与 C# 14 更新速览,代码更少,性能更好
后端·c#·.net
心在飞扬11 小时前
langchain学习总结-Model组件及使用技巧
后端
心在飞扬11 小时前
langchain学习总结-OutputParser组件及使用技巧
前端·后端
Kind11 小时前
Git 在传输数据时遇到的连接问题 error: RPC failed 导致代码拉不下来解决办法
程序员
llq_35011 小时前
Ant Design v5 样式兼容性问题与解决方案
前端