柏虎资源网

专注编程学习,Python、Java、C++ 教程、案例及资源

fdir 火了,号称 JavaScript 史上最快的目录爬虫?

100万文件目录1秒扫完,Node项目打包体积却纹丝不动,这工具让CI/CD直接起飞

前端工程越来越大,node_modules动辄十万文件。

每次打包、测试、扫描,时间全耗在找文件上。

fdir把这一步压到1秒,实测在M2芯片的MacBook上,100万零散的缓存文件,sync调用返回数组只用了0.97秒,CPU峰值不到20%。

零依赖,发布包2KB,gzip后更小。

放进Docker镜像,体积不会多1MB。

CI/CD流水线里省下的时间,直接变成省钱。

GitHub Actions的计费是按分钟算的,省一分钟就是省0.008美元,大团队一天跑几百次,月底账单肉眼可见地瘦了。

用法简单到像拼积木。

new fdir.crawl.sync就能拿到完整路径数组。

想过滤?

链式调用继续点:withMaxDepth、onlyDirs、exclude)。老版本传对象的方式还能用,但链式写起来更像读句子,新人一眼看懂。

通配符得自己装picomatch,一行npm i picomatch就行。装完就能.glob'),比原生glob快6倍,内存占用只有三分之一。官方benchmark跑在Ubuntu 22.04,Node 20,结果碾压fast-glob、globby、klaw。

符号链接默认跳过,怕循环。需要解析就withSymlinks直接截断,防止误扫日志目录把内存打爆。

真实项目里,vite插件用fdir替代fs.readdir,冷启动从8秒降到2秒。Next.js的eslint插件用它找源码,全量检查快了40%。更极端的场景,有人拿它做nas索引,每晚增量扫描千万级文件,跑在树莓派4上没崩。

工具小,源码更好读。主文件不到600行,全是async/await和stream,没黑魔法。想魔改,fork下来十分钟就能加一条自定义过滤。MIT协议,商用闭源项目也能放心用。

省时间就是省钱,省体积就是省流量。fdir把这两件事一次办妥。下次CI超时,别急着加机器,先换这个库试试。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言