Skip to content

chore(deps-dev): take vite 8 deliberately, with vite as a direct devDependency - #57

Merged
jfrench9 merged 1 commit into
mainfrom
chore/vite-8-alignment
Sep 1, 2026
Merged

jfrench9 merged 1 commit into
mainfrom
chore/vite-8-alignment

Conversation

@jfrench9

@jfrench9 jfrench9 commented Sep 1, 2026

Copy link
Copy Markdown
Member

Completes the vite-toolchain alignment. All three apps and both client repos moved to @vitejs/plugin-react ^6 with vite ^8 today — core was the last repo still on plugin-react ^4.

Why not just merge Dependabot's #54

#54 offered @vitejs/plugin-react 4.7.0 → 6.1.1 at 11:28, about seven hours before the vite-toolchain group landed in #56 at 18:12. So it arrived ungrouped: a one-line package.json change whose actual content was a bundler swap, since plugin-react 6 peers vite ^8.

That's the exact shape the group was added to prevent, so #54 was closed in favour of doing it deliberately.

Why vite becomes a direct devDependency

This matters more here than it did in the apps. package-lock.json is gitignored in this repo — so with vite left transitive, its version is recorded nowhere: no lockfile, no package.json line, nothing to review, pin, or notice changing. The apps at least had a lockfile diff making the Vite 7→8 move visible; core would have had literally nothing.

With a direct entry, the next bundler major arrives titled what it actually is.

One mismatch I deliberately did not "fix"

Core declares engines: >=22.0.0. vite 8 and plugin-react 6 both want ^20.19.0 || >=22.12.0.

That gap affects contributors on Node 22.0–22.11, who'll see an EBADENGINE warning — npm doesn't enforce engines unless engine-strict is set, so it's a warning, not a failure. It does not affect consumers, because devDependencies aren't installed by them.

So raising the published engines range to satisfy a dev tool would narrow a consumer-facing promise for a reason consumers never encounter. Left alone on purpose. CI is unaffected — node-version: '22' resolves to the latest 22.x, well past 22.12 (released Dec 2024).

If you'd rather contributors got a hard signal instead of a warning, the right place is a note in contributor docs, not the engines field.

Verification

Full gate on vite 8: format:check, lint, typecheck, test (43 files, 492 passed / 16 skipped) and build all pass.

After this

Every repo in the fleet is on the same vite toolchain, and every one of them now has a vite-toolchain Dependabot group, so the next plugin-react/vite major pairing arrives as a single reviewable PR rather than two PRs that block each other.

…ependency

Completes the vite-toolchain alignment: all three apps and both client repos
moved to @vitejs/plugin-react ^6 with vite ^8 today, and core was the last
repo still on plugin-react ^4.

Dependabot offered this as #54 (plugin-react 4.7.0 -> 6.1.1) hours before the
vite-toolchain group landed in #56, so it arrived ungrouped — a one-line
package.json change whose real content was a bundler swap, since plugin-react 6
peers vite ^8. #54 was closed in favour of doing it deliberately.

vite is added as a direct devDependency rather than left transitive. That
matters more here than in the apps: package-lock.json is gitignored in this
repo, so without a direct entry the vite version would be recorded nowhere at
all — no lockfile, no package.json line, nothing to review or pin. Now a future
bundler major arrives titled what it is.

One mismatch worth knowing about, deliberately not "fixed": core declares
engines >=22.0.0, while plugin-react 6 and vite 8 want ^20.19.0 || >=22.12.0.
That gap only affects contributors on Node 22.0-22.11, who will see an
EBADENGINE warning (npm does not enforce engines unless engine-strict is set).
It does not affect consumers, because devDependencies are not installed by
them — so raising the published engines range to satisfy a dev tool would
narrow a consumer-facing promise for no consumer-facing reason. CI is
unaffected: node-version '22' resolves to the latest 22.x, well past 22.12.

Verified with the full gate on vite 8: format:check, lint, typecheck, test
(43 files, 492 passed / 16 skipped) and build all pass.
@jfrench9
jfrench9 merged commit 3f4f12a into main Sep 1, 2026
5 checks passed
@jfrench9
jfrench9 deleted the chore/vite-8-alignment branch September 1, 2026 18:45
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.

1 participant