百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
N

node-graceful-fs

> 编程语言
开源

在 EMFILE 上使用增量回退的 fs

1.3K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

在 EMFILE 上使用增量回退的 fs

graceful-fs graceful-fs 可作为 fs 模块的替代方案,并做出了各种改进。这些改进旨在使不同平台和环境的行为标准化,并使文件系统访问更具抵御错误的能力。与 fs 模块相比的改进 将打开和 readdir 调用排队,并在出现 EMFILE 错误(由于文件描述符过多)时重试一次。修复了 Node 0.6.2 之前版本的 lchmod。如果可能,实现 fs.lutimes。否则,它将成为一个 noop。在 chown、fchown 或 lchown 中忽略 EINVAL 和 EPERM 错误,如果用户不是 root。使 lchmod 和 lchown 成为 noop,如果不存在。如果读取文件时出现 EAGAIN 错误,则重试。在 Windows 上,如果出现 EACCESS 或 EPERM 错误,则重试重命名文件,最多一秒钟。这可能是因为防病毒软件锁定了目录。 使用 JavaScript // 使用与 fs 相同 var fs = require('graceful-fs') // 现在去做与它有关的事情... fs.readFile('some-file-or-whatever', (err, data) = { // 在此处做事情 }) 同步方法 此模块无法拦截或处理来自同步方法的 EMFILE 或 ENFILE 错误。如果使用打开文件描述符的同步方法,则您负责处理任何错误。这是一个已知的限制,而不是一个 bug。 全局补丁 如果您想对全局 fs 模块(或任何其他类似于 fs 的模块)进行补丁,可以这样做: JavaScript // 请务必阅读下面的警告。 var realFs = require('fs') var gracefulFs = require('graceful-fs') gracefulFs.gracefulify(realFs) 这只能在顶层应用程序层中进行,以延迟来自任何使用 fs 的依赖项的 EMFILE 错误。您不应在库中这样做,因为这可能会导致程序其他部分出现意外延迟。 变更 此模块目前相当稳定,并被许多东西使用。尽管如此,由于它在 node API 的核心部分实现了一个微妙的行为变化,即使是微小的变化也可能极其破坏性,因此版本号偏向于在怀疑时升级主版本。主版本之间的主要变化是切换提供完全补丁后的 fs 模块与使用 monkey-patch 的…

GitHub Issues· 0 开放

在 GitHub 查看全部

暂无开放 Issues,或尚未同步最近议题。

核心特点

  • •Queues up open and readdir calls, and retries them once
  • •fixes lchmod for Node versions prior to 0.6.2.
  • •implements fs.lutimes if possible. Otherwise it becomes a noop.
  • •ignores EINVAL and EPERM errors in chown, fchown or
  • •makes lchmod and lchown become noops, if not available.
  • •retries reading a file if read results in EAGAIN error.
  • •Do not monkey-patch the fs module. This module may now be used as a
  • •Monkey-patch fs, because the eval approach no longer works on recent
  • •fixed possible type-error throw if rename fails on windows
  • •verify that we *never* get EMFILE errors

> 标签

JavaScript

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言