Skip to content

perf: replace graceful-fs with node:fs - #77

Merged
chenjiahan merged 1 commit into
mainfrom
remove_graceful_fs_0227
Feb 27, 2026
Merged

chenjiahan merged 1 commit into
mainfrom
remove_graceful_fs_0227

Conversation

@chenjiahan

Copy link
Copy Markdown
Member

Remove graceful-fs dependency as node:fs provides sufficient functionality

Copilot AI review requested due to automatic review settings February 27, 2026 07:00
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request streamlines the project's dependencies by replacing the external graceful-fs library with Node.js's native node:fs module. This change aims to reduce the project's footprint and improve performance by relying on built-in functionality, as the native module now offers sufficient capabilities for the project's needs.

Highlights

  • Dependency Removal: The graceful-fs package and its corresponding type definitions have been removed from the project's dependencies and development dependencies.
  • Module Replacement: All instances where graceful-fs was imported or required have been updated to use the native node:fs module, leveraging Node.js's built-in file system capabilities.
  • Lockfile Update: The pnpm-lock.yaml file has been updated to reflect the removal of graceful-fs and its related type definitions, ensuring consistency in dependency resolution.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • package.json
    • Removed graceful-fs and @types/graceful-fs from devDependencies and dependencies.
  • pnpm-lock.yaml
    • Removed all entries related to graceful-fs and @types/graceful-fs.
  • scripts/build-client-modules.cjs
    • Replaced graceful-fs import with node:fs.
  • src/server.ts
    • Replaced graceful-fs import with node:fs.
  • tests/e2e/hot-and-live-reload.test.js
    • Replaced graceful-fs import with node:fs.
  • tests/e2e/logging.test.js
    • Replaced graceful-fs import with node:fs.
  • tests/e2e/multi-compiler.test.js
    • Replaced graceful-fs import with node:fs.
  • tests/e2e/overlay.test.js
    • Replaced graceful-fs import with node:fs.
  • tests/e2e/progress.test.js
    • Replaced graceful-fs import with node:fs.
  • tests/e2e/server.test.js
    • Replaced graceful-fs import with node:fs.
  • tests/e2e/static-directory.test.js
    • Replaced graceful-fs import with node:fs.
  • tests/e2e/watch-files.test.js
    • Replaced graceful-fs import with node:fs.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request removes the graceful-fs dependency in favor of the native node:fs module. The change is applied consistently across all relevant files, including package configurations and source code. My review of these changes did not uncover any issues.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the graceful-fs dependency in favor of the native node:fs module. The graceful-fs library was originally created to work around file system issues in older Node.js versions, particularly EMFILE (too many open files) errors. Since this project requires Node.js >= 18.12.0, these issues have been addressed natively, making graceful-fs unnecessary.

Changes:

  • Removed graceful-fs and @types/graceful-fs from package dependencies
  • Replaced all graceful-fs imports with node:fs across source and test files
  • Updated pnpm-lock.yaml to reflect dependency removal

Reviewed changes

Copilot reviewed 11 out of 12 changed files in this pull request and generated no comments.

Show a summary per file
File Description
package.json Removed graceful-fs from dependencies and @types/graceful-fs from devDependencies
pnpm-lock.yaml Updated lockfile to remove graceful-fs direct dependencies (remains as transitive dependency from webpack/other packages)
src/server.ts Changed import from graceful-fs to node:fs with proper alphabetical ordering
scripts/build-client-modules.cjs Changed require from graceful-fs to node:fs
tests/e2e/*.test.js Updated 8 test files to use node:fs instead of graceful-fs
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@chenjiahan
chenjiahan merged commit 4872210 into main Feb 27, 2026
8 checks passed
@chenjiahan
chenjiahan deleted the remove_graceful_fs_0227 branch February 27, 2026 07:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants