Skip to content

feat: create @docusaurus/fs package with fs-extra compatible helpers (AI-assisted) - #12560

Merged
slorber merged 1 commit into
mainfrom
slorber/fs-utils
Oct 9, 2026
Merged

slorber merged 1 commit into
mainfrom
slorber/fs-utils

Conversation

@slorber

@slorber slorber commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

Pre-flight checklist

  • I have read the Contributing Guidelines on pull requests.
  • If this is a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.
  • If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation

Create a new @docusaurus/fs package to isolate the file system operations of Docusaurus. We do a lot of FS operations, and having them in a dedicated package will let us make all of them go through it later, and implement further optimizations in a single place.

First step to remove fs-extra: the package starts with the few helpers we need, with the same semantics as their fs-extra counterparts, so that the PRs above in the stack can migrate to node:fs/promises. Nothing uses them yet in this PR.

Like @docusaurus/glob, it's mostly designed for internal usage and is undocumented.

  • pathExists(path): fs.access() resolved to true/false.
  • outputFile(file, data, options?): mkdir(dirname, {recursive: true}) then writeFile().
  • readJSON(file): like fs-extra (jsonfile), ignores a leading UTF-8 BOM (JSON.parse() rejects it, and some editors like Windows Notepad add one). Read and parse errors are wrapped in a new error mentioning the file path relative to the current directory, with the original error as cause. fs-extra mutated the original error message instead.
  • realpath(path): fs-extra's realpath is Node's JavaScript fs.realpath, while fs/promises realpath() uses the native implementation, which normalizes path casing on macOS/Windows (checked: /USERS/foo/DESKTOP → /Users/foo/Desktop) and resolves Windows subst/network drives differently. We use it for siteDir, and Node's module resolution keeps using the JS implementation, so switching could create path casing mismatches. This helper keeps the JS implementation.

ensureDir() is not worth a helper: fs.mkdir(dir, {recursive: true}).

Implementation note: the helpers call Node APIs through the default-imported module object at call time (fs.writeFile(), not a destructured named import), so that tests can intercept them with vi.spyOn(fs, 'writeFile') on node:fs/promises. I checked that this works in Vitest for node builtins (named imports are not intercepted).

Stack

Removing fs-extra from the monorepo, split into stacked PRs:

  1. feat: create @docusaurus/fs package with fs-extra compatible helpers (AI-assisted) #12560 new @docusaurus/fs package with fs helpers
  2. feat(fs): add queueFileOperation() to bound concurrently open files (AI-assisted) #12561 queueFileOperation() to bound concurrently open files
  3. refactor: replace fs-extra with node:fs/promises and @docusaurus/fs in published packages (AI-assisted) #12558 migrate published packages to node:fs/promises, remove their fs-extra dependency
  4. chore(monorepo): remove fs-extra from website, admin scripts and root (AI-assisted) #12566 remove fs-extra from website, admin scripts and root

Test Plan

Unit tests on a real temp dir for each helper, including the BOM, the read/parse error causes, and realpath keeping the path casing on case-insensitive file systems (skipped elsewhere).

Test links

Deploy preview: https://deploy-preview-12560--docusaurus-2.netlify.app/

No user-facing change.

(AI-assisted)

🤖 Generated with Claude Code

@slorber
slorber requested a review from Josh-Cena as a code owner October 2, 2026 09:16
@meta-cla meta-cla Bot added the CLA Signed Signed Facebook CLA label Oct 2, 2026
@slorber
slorber added this pull request to stack #12562 October 2, 2026 09:17
@netlify

netlify Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

✅ [V2]

Name Link
🔨 Latest commit 2cdf371
🔍 Latest deploy log https://app.netlify.com/projects/docusaurus-2/deploys/6ac7bc3fadf6290008f1d72d
😎 Deploy Preview https://deploy-preview-12560--docusaurus-2.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown

Size Change: 0 B

Total Size: 12.4 MB

ℹ️ View Unchanged
Filename Size Change
website/.docusaurus/codeTranslations.json 2 B 0 B
website/.docusaurus/docusaurus.config.mjs 29.1 kB 0 B
website/.docusaurus/globalData.json 39.1 kB 0 B
website/.docusaurus/i18n.json 1.36 kB 0 B
website/.docusaurus/registry.js 180 kB 0 B
website/.docusaurus/routes.js 89.8 kB 0 B
website/.docusaurus/routesChunkNames.json 94 kB 0 B
website/.docusaurus/site-metadata.json 2.59 kB 0 B
website/build/assets/css/styles.********.css 145 kB 0 B
website/build/assets/js/main.********.js 760 kB 0 B
website/build/assets/js/runtime~main.********.js 40.2 kB 0 B
website/build/blog.html 79.6 kB 0 B
website/build/blog/2017/12/14/introducing-docusaurus.html 67.6 kB 0 B
website/build/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus.html 46.6 kB 0 B
website/build/blog/2018/09/11/Towards-Docusaurus-2.html 51.1 kB +5 B (+0.01%)
website/build/blog/2018/12/14/Happy-First-Birthday-Slash.html 30.5 kB 0 B
website/build/blog/2019/12/30/docusaurus-2019-recap.html 41.6 kB 0 B
website/build/blog/2020/01/07/tribute-to-endi.html 34.1 kB 0 B
website/build/blog/2021/01/19/docusaurus-2020-recap.html 53.2 kB 0 B
website/build/blog/2021/03/09/releasing-docusaurus-i18n.html 49.1 kB 0 B
website/build/blog/2021/05/12/announcing-docusaurus-two-beta.html 49.8 kB 0 B
website/build/blog/2021/11/21/algolia-docsearch-migration.html 56.2 kB 0 B
website/build/blog/2022/01/24/docusaurus-2021-recap.html 45 kB 0 B
website/build/blog/2022/08/01/announcing-docusaurus-2.0.html 137 kB 0 B
website/build/blog/2022/09/01/docusaurus-2.1.html 52.2 kB 0 B
website/build/blog/archive.html 24.9 kB 0 B
website/build/blog/authors.html 52.2 kB 0 B
website/build/blog/authors/j-marcey.html 72.4 kB 0 B
website/build/blog/authors/josh-cena.html 48.6 kB 0 B
website/build/blog/authors/lex-111.html 57.5 kB 0 B
website/build/blog/authors/slorber.html 83.2 kB 0 B
website/build/blog/authors/slorber/page/2.html 82.4 kB 0 B
website/build/blog/authors/slorber/page/3.html 86 kB 0 B
website/build/blog/authors/slorber/page/4.html 98.7 kB 0 B
website/build/blog/authors/slorber/page/5.html 55 kB 0 B
website/build/blog/authors/yangshun.html 68.3 kB 0 B
website/build/blog/authors/zpao.html 49 kB 0 B
website/build/blog/page/2.html 78.8 kB 0 B
website/build/blog/page/3.html 83.2 kB 0 B
website/build/blog/page/4.html 87.7 kB 0 B
website/build/blog/page/5.html 74.8 kB 0 B
website/build/blog/page/6.html 42.2 kB 0 B
website/build/blog/preparing-your-site-for-docusaurus-v3.html 130 kB 0 B
website/build/blog/releases/2.2.html 52.3 kB 0 B
website/build/blog/releases/2.3.html 63 kB -1 B (0%)
website/build/blog/releases/2.4.html 66.8 kB 0 B
website/build/blog/releases/3.0.html 109 kB 0 B
website/build/blog/releases/3.1.html 55 kB 0 B
website/build/blog/releases/3.2.html 50.9 kB 0 B
website/build/blog/releases/3.3.html 58.1 kB 0 B
website/build/blog/releases/3.4.html 57.3 kB 0 B
website/build/blog/releases/3.5.html 60.1 kB 0 B
website/build/blog/releases/3.6.html 79.2 kB 0 B
website/build/blog/releases/3.7.html 52.7 kB 0 B
website/build/blog/releases/3.8.html 88.5 kB +5 B (+0.01%)
website/build/blog/releases/3.9.html 62.9 kB 0 B
website/build/blog/releases/3.10.html 93.6 kB 0 B
website/build/blog/tags.html 28.7 kB 0 B
website/build/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing.html 127 kB 0 B
website/build/docs.html 52.6 kB -1 B (0%)
website/build/docs/advanced.html 31.7 kB -1 B (0%)
website/build/docs/advanced/architecture.html 30.3 kB +3 B (+0.01%)
website/build/docs/advanced/client.html 70.7 kB 0 B
website/build/docs/advanced/plugins.html 55.7 kB 0 B
website/build/docs/advanced/routing.html 71 kB 0 B
website/build/docs/advanced/ssg.html 75.6 kB 0 B
website/build/docs/api/docusaurus-config.html 242 kB -1 B (0%)
website/build/docs/api/misc/@docusaurus/eslint-plugin.html 51.6 kB -1 B (0%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/no-html-links.html 36.9 kB 0 B
website/build/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text.html 35.9 kB 0 B
website/build/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading.html 37.1 kB 0 B
website/build/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages.html 40.8 kB 0 B
website/build/docs/api/misc/@docusaurus/logger.html 39.3 kB 0 B
website/build/docs/api/misc/create-docusaurus.html 38.5 kB +7 B (+0.02%)
website/build/docs/api/misc/docusaurus-init/index.html 361 B 0 B
website/build/docs/api/plugin-methods.html 61.8 kB -1 B (0%)
website/build/docs/api/plugin-methods/extend-infrastructure.html 59.3 kB -1 B (0%)
website/build/docs/api/plugin-methods/i18n-lifecycles.html 58.2 kB 0 B
website/build/docs/api/plugin-methods/lifecycle-apis.html 162 kB 0 B
website/build/docs/api/plugin-methods/static-methods.html 45.3 kB 0 B
website/build/docs/api/plugins.html 32.7 kB -1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-client-redirects.html 60.3 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-content-blog.html 187 kB +5 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-content-docs.html 193 kB +5 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-content-pages.html 75.3 kB +5 B (+0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-css-cascade-layers.html 47.8 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-debug.html 48.5 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-google-gtag.html 49.5 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-google-tag-manager.html 48.3 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-ideal-image.html 57.9 kB +3 B (+0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-pwa.html 118 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-rsdoctor.html 40.9 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-sitemap.html 66.2 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-svgr.html 46.1 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-vercel-analytics.html 41.3 kB 0 B
website/build/docs/api/themes.html 30.3 kB 0 B
website/build/docs/api/themes/@docusaurus/theme-classic.html 44.2 kB 0 B
website/build/docs/api/themes/@docusaurus/theme-live-codeblock.html 37.2 kB 0 B
website/build/docs/api/themes/@docusaurus/theme-mermaid.html 35.9 kB 0 B
website/build/docs/api/themes/@docusaurus/theme-search-algolia.html 33.7 kB -1 B (0%)
website/build/docs/api/themes/configuration.html 254 kB 0 B
website/build/docs/blog.html 205 kB 0 B
website/build/docs/browser-support.html 47.4 kB 0 B
website/build/docs/category/getting-started.html 28.6 kB 0 B
website/build/docs/category/guides.html 39 kB 0 B
website/build/docs/category/miscellaneous.html 28.3 kB 0 B
website/build/docs/cli.html 67.7 kB 0 B
website/build/docs/configuration.html 93.6 kB -1 B (0%)
website/build/docs/create-doc.html 62.4 kB 0 B
website/build/docs/creating-pages.html 57.7 kB 0 B
website/build/docs/deployment.html 67.6 kB -1 B (0%)
website/build/docs/deployment/github-pages.html 120 kB -1 B (0%)
website/build/docs/deployment/netlify.html 39.4 kB -1 B (0%)
website/build/docs/deployment/vercel.html 33.4 kB -1 B (0%)
website/build/docs/docs-introduction.html 51.3 kB 0 B
website/build/docs/docs-multi-instance.html 74.9 kB 0 B
website/build/docs/docusaurus-core.html 228 kB -1 B (0%)
website/build/docs/guides/whats-next.html 33.3 kB -1 B (0%)
website/build/docs/i18n/crowdin.html 149 kB -1 B (0%)
website/build/docs/i18n/git.html 81.2 kB +7 B (+0.01%)
website/build/docs/i18n/introduction.html 49.9 kB -1 B (0%)
website/build/docs/i18n/tutorial.html 170 kB -1 B (0%)
website/build/docs/installation.html 71.7 kB -1 B (0%)
website/build/docs/introduction/index.html 280 B 0 B
website/build/docs/markdown-features.html 85.7 kB +1 B (0%)
website/build/docs/markdown-features/admonitions.html 118 kB 0 B
website/build/docs/markdown-features/assets.html 87.9 kB 0 B
website/build/docs/markdown-features/code-blocks.html 223 kB +12 B (+0.01%)
website/build/docs/markdown-features/diagrams.html 61.9 kB -1 B (0%)
website/build/docs/markdown-features/head-metadata.html 51.6 kB 0 B
website/build/docs/markdown-features/links.html 41.5 kB +5 B (+0.01%)
website/build/docs/markdown-features/math-equations.html 92.8 kB 0 B
website/build/docs/markdown-features/plugins.html 96.9 kB 0 B
website/build/docs/markdown-features/react.html 132 kB -1 B (0%)
website/build/docs/markdown-features/tabs.html 141 kB 0 B
website/build/docs/markdown-features/toc.html 87.9 kB 0 B
website/build/docs/migration.html 40.3 kB 0 B
website/build/docs/migration/v2.html 40 kB 0 B
website/build/docs/migration/v2/automated.html 40.7 kB 0 B
website/build/docs/migration/v2/manual.html 192 kB 0 B
website/build/docs/migration/v2/translated-sites.html 51.4 kB 0 B
website/build/docs/migration/v2/versioned-sites.html 61 kB 0 B
website/build/docs/migration/v3.html 193 kB +1 B (0%)
website/build/docs/playground.html 32.1 kB -1 B (0%)
website/build/docs/resources/index.html 325 B 0 B
website/build/docs/search.html 125 kB 0 B
website/build/docs/seo.html 89.1 kB -1 B (0%)
website/build/docs/sidebar.html 141 kB -1 B (0%)
website/build/docs/sidebar/autogenerated.html 148 kB 0 B
website/build/docs/sidebar/items.html 177 kB 0 B
website/build/docs/sidebar/multiple-sidebars.html 62.9 kB 0 B
website/build/docs/static-assets.html 52.7 kB 0 B
website/build/docs/styling-layout.html 142 kB -1 B (0%)
website/build/docs/support/index.html 319 B 0 B
website/build/docs/swizzling.html 113 kB 0 B
website/build/docs/team/index.html 310 B 0 B
website/build/docs/typescript-support.html 68.4 kB -1 B (0%)
website/build/docs/using-plugins.html 107 kB -1 B (0%)
website/build/docs/versioning.html 93.4 kB -1 B (0%)
website/build/index.html 37.1 kB 0 B

compressed-size-action::DOCUSAURUS_INFRA_FASTER

@github-actions

github-actions Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

⚡️ Lighthouse report for the deploy preview of this PR

URL Performance Accessibility Best Practices SEO Report
/ 🟠 72 🟢 98 🟢 100 🟢 100 Report
/docs/installation 🟠 73 🟢 97 🟢 100 🟢 100 Report
/docs/category/getting-started 🟠 75 🟢 100 🟢 100 🟠 86 Report
/blog 🟠 72 🟢 96 🟢 100 🟠 86 Report
/blog/preparing-your-site-for-docusaurus-v3 🟠 73 🟢 92 🟢 100 🟢 100 Report
/blog/tags/release 🟠 73 🟢 96 🟢 100 🟠 86 Report
/blog/tags 🟠 76 🟢 100 🟢 100 🟠 86 Report

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown

Size Change: 0 B

Total Size: 12.6 MB

ℹ️ View Unchanged
Filename Size Change
website/.docusaurus/codeTranslations.json 2 B 0 B
website/.docusaurus/docusaurus.config.mjs 29.1 kB 0 B
website/.docusaurus/globalData.json 39.1 kB 0 B
website/.docusaurus/i18n.json 1.36 kB 0 B
website/.docusaurus/registry.js 180 kB 0 B
website/.docusaurus/routes.js 89.8 kB 0 B
website/.docusaurus/routesChunkNames.json 94 kB 0 B
website/.docusaurus/site-metadata.json 2.44 kB 0 B
website/build/assets/css/styles.********.css 143 kB 0 B
website/build/assets/js/main.********.js 762 kB 0 B
website/build/assets/js/runtime~main.********.js 40.1 kB 0 B
website/build/blog.html 80.4 kB 0 B
website/build/blog/2017/12/14/introducing-docusaurus.html 68 kB 0 B
website/build/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus.html 47.1 kB 0 B
website/build/blog/2018/09/11/Towards-Docusaurus-2.html 51.6 kB +5 B (+0.01%)
website/build/blog/2018/12/14/Happy-First-Birthday-Slash.html 30.9 kB 0 B
website/build/blog/2019/12/30/docusaurus-2019-recap.html 42.2 kB 0 B
website/build/blog/2020/01/07/tribute-to-endi.html 34.5 kB 0 B
website/build/blog/2021/01/19/docusaurus-2020-recap.html 53.8 kB 0 B
website/build/blog/2021/03/09/releasing-docusaurus-i18n.html 49.6 kB 0 B
website/build/blog/2021/05/12/announcing-docusaurus-two-beta.html 50.3 kB 0 B
website/build/blog/2021/11/21/algolia-docsearch-migration.html 56.8 kB 0 B
website/build/blog/2022/01/24/docusaurus-2021-recap.html 45.6 kB 0 B
website/build/blog/2022/08/01/announcing-docusaurus-2.0.html 138 kB 0 B
website/build/blog/2022/09/01/docusaurus-2.1.html 52.9 kB 0 B
website/build/blog/archive.html 25.3 kB 0 B
website/build/blog/authors.html 52.7 kB 0 B
website/build/blog/authors/j-marcey.html 73.1 kB 0 B
website/build/blog/authors/josh-cena.html 49.1 kB 0 B
website/build/blog/authors/lex-111.html 58.1 kB 0 B
website/build/blog/authors/slorber.html 84 kB 0 B
website/build/blog/authors/slorber/page/2.html 83.2 kB 0 B
website/build/blog/authors/slorber/page/3.html 86.9 kB 0 B
website/build/blog/authors/slorber/page/4.html 99.6 kB 0 B
website/build/blog/authors/slorber/page/5.html 55.7 kB 0 B
website/build/blog/authors/yangshun.html 69.1 kB 0 B
website/build/blog/authors/zpao.html 49.5 kB 0 B
website/build/blog/page/2.html 79.5 kB 0 B
website/build/blog/page/3.html 84 kB 0 B
website/build/blog/page/4.html 88.5 kB 0 B
website/build/blog/page/5.html 75.6 kB 0 B
website/build/blog/page/6.html 42.7 kB 0 B
website/build/blog/preparing-your-site-for-docusaurus-v3.html 132 kB 0 B
website/build/blog/releases/2.2.html 52.9 kB 0 B
website/build/blog/releases/2.3.html 63.6 kB -1 B (0%)
website/build/blog/releases/2.4.html 67.5 kB 0 B
website/build/blog/releases/3.0.html 111 kB 0 B
website/build/blog/releases/3.1.html 55.6 kB 0 B
website/build/blog/releases/3.2.html 51.5 kB 0 B
website/build/blog/releases/3.3.html 58.6 kB 0 B
website/build/blog/releases/3.4.html 57.9 kB 0 B
website/build/blog/releases/3.5.html 60.7 kB 0 B
website/build/blog/releases/3.6.html 79.8 kB 0 B
website/build/blog/releases/3.7.html 53.3 kB 0 B
website/build/blog/releases/3.8.html 89.3 kB +5 B (+0.01%)
website/build/blog/releases/3.9.html 63.5 kB 0 B
website/build/blog/releases/3.10.html 94.4 kB 0 B
website/build/blog/tags.html 29.2 kB 0 B
website/build/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing.html 128 kB 0 B
website/build/docs.html 53.2 kB -1 B (0%)
website/build/docs/advanced.html 32.1 kB -1 B (0%)
website/build/docs/advanced/architecture.html 30.7 kB +3 B (+0.01%)
website/build/docs/advanced/client.html 71.4 kB 0 B
website/build/docs/advanced/plugins.html 56.2 kB 0 B
website/build/docs/advanced/routing.html 71.6 kB 0 B
website/build/docs/advanced/ssg.html 76.5 kB 0 B
website/build/docs/api/docusaurus-config.html 244 kB -1 B (0%)
website/build/docs/api/misc/@docusaurus/eslint-plugin.html 52.4 kB -1 B (0%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/no-html-links.html 37.5 kB 0 B
website/build/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text.html 36.4 kB 0 B
website/build/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading.html 37.6 kB 0 B
website/build/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages.html 41.3 kB 0 B
website/build/docs/api/misc/@docusaurus/logger.html 39.8 kB 0 B
website/build/docs/api/misc/create-docusaurus.html 38.9 kB +7 B (+0.02%)
website/build/docs/api/misc/docusaurus-init/index.html 361 B 0 B
website/build/docs/api/plugin-methods.html 62.1 kB -1 B (0%)
website/build/docs/api/plugin-methods/extend-infrastructure.html 59.8 kB -1 B (0%)
website/build/docs/api/plugin-methods/i18n-lifecycles.html 58.7 kB 0 B
website/build/docs/api/plugin-methods/lifecycle-apis.html 163 kB 0 B
website/build/docs/api/plugin-methods/static-methods.html 45.7 kB 0 B
website/build/docs/api/plugins.html 33.1 kB -1 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-client-redirects.html 61.2 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-content-blog.html 190 kB +5 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-content-docs.html 196 kB +5 B (0%)
website/build/docs/api/plugins/@docusaurus/plugin-content-pages.html 76.8 kB +5 B (+0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-css-cascade-layers.html 48.5 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-debug.html 49.1 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-google-gtag.html 50.1 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-google-tag-manager.html 48.9 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-ideal-image.html 58.8 kB +3 B (+0.01%)
website/build/docs/api/plugins/@docusaurus/plugin-pwa.html 119 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-rsdoctor.html 41.5 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-sitemap.html 67.1 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-svgr.html 46.7 kB 0 B
website/build/docs/api/plugins/@docusaurus/plugin-vercel-analytics.html 41.9 kB 0 B
website/build/docs/api/themes.html 30.7 kB 0 B
website/build/docs/api/themes/@docusaurus/theme-classic.html 44.7 kB 0 B
website/build/docs/api/themes/@docusaurus/theme-live-codeblock.html 37.6 kB 0 B
website/build/docs/api/themes/@docusaurus/theme-mermaid.html 36.4 kB 0 B
website/build/docs/api/themes/@docusaurus/theme-search-algolia.html 34.1 kB -1 B (0%)
website/build/docs/api/themes/configuration.html 260 kB 0 B
website/build/docs/blog.html 206 kB 0 B
website/build/docs/browser-support.html 47.9 kB 0 B
website/build/docs/category/getting-started.html 28.9 kB 0 B
website/build/docs/category/guides.html 39.6 kB 0 B
website/build/docs/category/miscellaneous.html 28.7 kB 0 B
website/build/docs/cli.html 69.5 kB 0 B
website/build/docs/configuration.html 94.5 kB -1 B (0%)
website/build/docs/create-doc.html 63 kB 0 B
website/build/docs/creating-pages.html 58.4 kB 0 B
website/build/docs/deployment.html 68.4 kB -1 B (0%)
website/build/docs/deployment/github-pages.html 121 kB -1 B (0%)
website/build/docs/deployment/netlify.html 40 kB -1 B (0%)
website/build/docs/deployment/vercel.html 33.9 kB -1 B (0%)
website/build/docs/docs-introduction.html 51.9 kB 0 B
website/build/docs/docs-multi-instance.html 75.8 kB 0 B
website/build/docs/docusaurus-core.html 230 kB -1 B (0%)
website/build/docs/guides/whats-next.html 33.8 kB -1 B (0%)
website/build/docs/i18n/crowdin.html 150 kB -1 B (0%)
website/build/docs/i18n/git.html 81.9 kB +7 B (+0.01%)
website/build/docs/i18n/introduction.html 50.5 kB -1 B (0%)
website/build/docs/i18n/tutorial.html 172 kB -1 B (0%)
website/build/docs/installation.html 72.3 kB -1 B (0%)
website/build/docs/introduction/index.html 280 B 0 B
website/build/docs/markdown-features.html 86.5 kB +1 B (0%)
website/build/docs/markdown-features/admonitions.html 119 kB 0 B
website/build/docs/markdown-features/assets.html 89.1 kB 0 B
website/build/docs/markdown-features/code-blocks.html 224 kB +12 B (+0.01%)
website/build/docs/markdown-features/diagrams.html 62.6 kB -1 B (0%)
website/build/docs/markdown-features/head-metadata.html 52.3 kB 0 B
website/build/docs/markdown-features/links.html 42.1 kB +5 B (+0.01%)
website/build/docs/markdown-features/math-equations.html 93.6 kB 0 B
website/build/docs/markdown-features/plugins.html 97.7 kB 0 B
website/build/docs/markdown-features/react.html 133 kB -1 B (0%)
website/build/docs/markdown-features/tabs.html 143 kB 0 B
website/build/docs/markdown-features/toc.html 88.9 kB 0 B
website/build/docs/migration.html 40.8 kB 0 B
website/build/docs/migration/v2.html 40.5 kB 0 B
website/build/docs/migration/v2/automated.html 41.2 kB 0 B
website/build/docs/migration/v2/manual.html 194 kB 0 B
website/build/docs/migration/v2/translated-sites.html 52.1 kB 0 B
website/build/docs/migration/v2/versioned-sites.html 61.5 kB 0 B
website/build/docs/migration/v3.html 196 kB +1 B (0%)
website/build/docs/playground.html 32.5 kB -1 B (0%)
website/build/docs/resources/index.html 325 B 0 B
website/build/docs/search.html 126 kB 0 B
website/build/docs/seo.html 90.3 kB -1 B (0%)
website/build/docs/sidebar.html 143 kB -1 B (0%)
website/build/docs/sidebar/autogenerated.html 149 kB 0 B
website/build/docs/sidebar/items.html 178 kB 0 B
website/build/docs/sidebar/multiple-sidebars.html 63.8 kB 0 B
website/build/docs/static-assets.html 53.5 kB 0 B
website/build/docs/styling-layout.html 143 kB -1 B (0%)
website/build/docs/support/index.html 319 B 0 B
website/build/docs/swizzling.html 115 kB 0 B
website/build/docs/team/index.html 310 B 0 B
website/build/docs/typescript-support.html 69.1 kB -1 B (0%)
website/build/docs/using-plugins.html 108 kB -1 B (0%)
website/build/docs/versioning.html 94.5 kB -1 B (0%)
website/build/index.html 37.6 kB 0 B

compressed-size-action::DOCUSAURUS_INFRA_SLOWER

…(AI-assisted)

New package isolating the file system operations of Docusaurus.
Add pathExists, outputFile, readJSON and realpath helpers, with the same
semantics as their fs-extra counterparts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@slorber slorber changed the title refactor(utils): add fs-extra compatible fs helpers (AI-assisted) feat: create @docusaurus/fs package with fs-extra compatible helpers (AI-assisted) Oct 8, 2026
@slorber
slorber merged commit 4567ecd into main Oct 9, 2026
39 checks passed
@slorber
slorber deleted the slorber/fs-utils branch October 9, 2026 12:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed Signed Facebook CLA pr: ignore This PR is not meaningful enough to appear in the changelog.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant