Skip to content

chore(deps): upgrade dependencies and drop unused ones - #4634

Merged
thetaPC merged 13 commits into
mainfrom
packages
Aug 26, 2026
Merged

chore(deps): upgrade dependencies and drop unused ones#4634
thetaPC merged 13 commits into
mainfrom
packages

Conversation

@thetaPC

@thetaPC thetaPC commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Issue URL: N/A

What is the current behavior?

Sixteen dependencies are behind, several by multiple majors. Three are declared but unused: html-loader has no references anywhere, @docusaurus/plugin-client-redirects is never registered in the plugins array (redirects are handled in vercel.json), and @docusaurus/mdx-loader is not imported and already comes in through @docusaurus/core and @docusaurus/preset-classic.

node-fetch is imported by docusaurus.config.js, the component API plugin, and two build scripts, but it is not declared in package.json. It resolves only because cspell@6 happens to pull it in transitively.

CI installs with --legacy-peer-deps, added in 2023 when the workflow was first created. The matrix declares a node_version axis with a single value.

What is the new behavior?

Removes the three unused dependencies and upgrades the rest. Minor and patch bumps for @mdx-js/react, @prismicio/client, @stackblitz/sdk, docusaurus-plugin-copy-page-button, prism-react-renderer, sass, semver, and typescript. Majors for clsx 2, fs-extra 11, modern-normalize 3, @ionic-internal/ionic-ds 8, and cspell 10, each in its own commit.

Replaces node-fetch with the native fetch available since Node 18. This had to land before the cspell bump, because cspell@6 was the only thing providing the package and upgrading it removes node-fetch from the tree entirely.

Requires Node 24. cspell@10 needs at least 22.18, and this repo is self contained so there are no consumers to consider.

Adds --gitignore to the spellcheck script so it stops checking build output. Locally this drops the file count from 15471 to 7942, all of the difference being generated files under build/. CI never built, so it was already checking the smaller set; this makes local runs match CI.

Drops --legacy-peer-deps from CI and removes the single value node_version matrix axis.

Does this introduce a breaking change?

  • Yes
  • No

Other information

Two upgrades change rendering rather than just versions:

modern-normalize v3 drops hr { height: 0 }. Because theme.customCss is injected after Infima, that rule was overriding --ifm-hr-height and flattening every horizontal rule. Rules now render at their intended 1px. This affects the 48 Capacitor plugin pages, which are the only pages in the site containing an hr. Compare the Action Sheet page in production, where the separators between API entries are missing, against the same page in this branch's preview, where they are visible.

Anything whose blast radius reaches beyond dependency resolution was deliberately left out, so that each one gets a reviewable diff of its own rather than being buried in this one.

prettier 2 to 3 and @ionic/prettier-config 3 to 4 move together, since the config package exists to pair with prettier 3. That upgrade reformats every file in the repo, so the diff would be thousands of lines of whitespace with the real changes hidden inside it. It needs a PR where the reformat is the only thing under review.

typescript 5 to 7 is a compiler major. Nothing typechecks today (tsc is in no npm script and not in CI, and the repo has 42 pre-existing errors on both 5.3 and 5.9), so upgrading it means first deciding whether typechecking should be enforced at all. That is a separate conversation from keeping dependencies current.

crowdin is deprecated on npm, but the situation is more involved than a version swap. The package ships no binary and is never imported, while crowdin.yml is configured for the official CLI (@crowdin/cli), which is not declared anywhere. The npm deprecation notice points at @crowdin/crowdin-api-client, which is a library with no CLI and would not resolve the crowdin upload command either. Before changing it, someone needs to confirm how that command currently resolves on Vercel, since it is the path that keeps the Japanese docs in sync.

@vercel

vercel Bot commented Aug 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ionic-docs Ready Ready Preview Aug 25, 2026 10:30pm

Request Review

@thetaPC thetaPC changed the title chore(deps): remove unused dependencies chore(deps): upgrade dependencies and drop unused ones Aug 14, 2026
@thetaPC
thetaPC marked this pull request as ready for review August 25, 2026 15:26
@thetaPC
thetaPC requested a review from a team as a code owner August 25, 2026 15:26
@thetaPC
thetaPC requested a review from brandyscarney August 25, 2026 15:26

@brandyscarney brandyscarney left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good, just curious if we can fix some of the install vulnerabilities.

Comment thread .github/workflows/CI.yml
Comment thread package.json

@brandyscarney brandyscarney left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, thank you!

@thetaPC
thetaPC merged commit 2eefac3 into main Aug 26, 2026
4 checks passed
@thetaPC
thetaPC deleted the packages branch August 26, 2026 17: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