Skip to content

testing(vite-ecosystem-ci): add vite as direct dev depencency#6709

Merged
birkskyum merged 5 commits intomainfrom
fix-vite-ecosystem-ci
Feb 20, 2026
Merged

testing(vite-ecosystem-ci): add vite as direct dev depencency#6709
birkskyum merged 5 commits intomainfrom
fix-vite-ecosystem-ci

Conversation

@birkskyum
Copy link
Member

@birkskyum birkskyum commented Feb 20, 2026

This fixes the vite-ecosystem-ci which will override the vite verison from vite 7 to vite 8, but it can't do that unless we have vite in the dev dependencies of each package.

Vite was declared in the root package.json, but that's not sufficient to override e.g. when a package has "vite-plugin-dts" which has vite as a peer dependency. Adding vite as a dev dependency in the same package does allow for the override.

Since we use Vite 7, set node >= 20, because vite 7 doesn't support node 18.

Summary by CodeRabbit

  • Chores
    • Development tooling updated: Vite added or version constraint relaxed across many packages to simplify/dev workflow.
  • Breaking Changes
    • Minimum Node requirement raised to Node >=20.19 for multiple packages — update your runtime environment for tooling and local workflows.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 20, 2026

📝 Walkthrough

Walkthrough

Bumped Node engine constraints to ">=20.19" and added or relaxed vite entries (mostly to "*") across many package.json manifests; no runtime code or exported APIs changed.

Changes

Cohort / File(s) Summary
Monorepo manifests
e2e/e2e-utils/package.json, packages/*/package.json
Widespread package.json edits: engines.node updated to >=20.19 in many packages and vite added or version relaxed (mostly to "*") in dependencies/devDependencies.
Router core & plugins
packages/router-core/package.json, packages/router-cli/package.json, packages/router-generator/package.json, packages/router-utils/package.json, packages/router-vite-plugin/package.json, packages/router-ssr-query-core/package.json, packages/eslint-plugin-router/package.json, packages/history/package.json
Added/updated vite devDependency entries and bumped Node engine where present.
Framework — React
packages/react-router/package.json, packages/react-start-client/package.json, packages/react-start-server/package.json, packages/react-router-ssr-query/package.json, packages/react-router-devtools/package.json
Added/relaxed vite entries (deps/devDeps) and updated engines.node in some manifests.
Framework — Solid
packages/solid-router/package.json, packages/solid-start-client/package.json, packages/solid-start-server/package.json, packages/solid-router-ssr-query/package.json, packages/solid-router-devtools/package.json, packages/solid-start/package.json
Added/relaxed vite in devDependencies (and in some cases dependencies); bumped Node engine in several packages.
Framework — Vue
packages/vue-router/package.json, packages/vue-start-client/package.json, packages/vue-start-server/package.json, packages/vue-router-ssr-query/package.json, packages/vue-router-devtools/package.json, packages/vue-start/package.json
Added/relaxed vite entries and bumped engines.node in multiple manifests.
Adapters & devtooling
packages/arktype-adapter/package.json, packages/valibot-adapter/package.json, packages/zod-adapter/package.json, packages/react-router-devtools/package.json, packages/router-devtools-core/package.json, packages/router-devtools/package.json
Added/updated vite entries; several bumped Node engine to >=20.19.
Start framework & utilities
packages/start-client-core/package.json, packages/start-server-core/package.json, packages/start-fn-stubs/package.json, packages/start-static-server-functions/package.json, packages/start-storage-context/package.json, packages/start-plugin-core/package.json
Moved/added vite into devDependencies or relaxed existing spec; minor manifest formatting adjustments.
Other / misc
packages/virtual-file-routes/package.json, packages/router-plugin/package.json, packages/router-generator/package.json, packages/virtual-file-routes/package.json
Added devDependencies.vite and/or bumped engines.node; no code changes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

package: directive-functions-plugin, package: server-functions-plugin, package: nitro-v2-vite-plugin

Suggested reviewers

  • brenelz
  • lachlancollins

Poem

🐰
I hopped through package.json by moonlight bright,
Nudged Node to twenty and set Vite alight,
A tiny change, a tidy trail,
Dev builds ready — hop, hop, hooray! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'testing(vite-ecosystem-ci): add vite as direct dev depencency' clearly describes the main change: adding Vite as a direct dev dependency for the vite-ecosystem-ci testing workflow. However, it contains a typo ('depencency' instead of 'dependency').
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-vite-ecosystem-ci

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@nx-cloud
Copy link

nx-cloud bot commented Feb 20, 2026

View your CI Pipeline Execution ↗ for commit ff1b934

Command Status Duration Result
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded 20m 48s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 1m 53s View ↗

☁️ Nx Cloud last updated this comment at 2026-02-20 00:57:21 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Feb 20, 2026

More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/arktype-adapter@6709

@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/eslint-plugin-router@6709

@tanstack/history

npm i https://pkg.pr.new/TanStack/router/@tanstack/history@6709

@tanstack/nitro-v2-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/nitro-v2-vite-plugin@6709

@tanstack/react-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router@6709

@tanstack/react-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-devtools@6709

@tanstack/react-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-ssr-query@6709

@tanstack/react-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start@6709

@tanstack/react-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-client@6709

@tanstack/react-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-server@6709

@tanstack/router-cli

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-cli@6709

@tanstack/router-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-core@6709

@tanstack/router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools@6709

@tanstack/router-devtools-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools-core@6709

@tanstack/router-generator

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-generator@6709

@tanstack/router-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-plugin@6709

@tanstack/router-ssr-query-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-ssr-query-core@6709

@tanstack/router-utils

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-utils@6709

@tanstack/router-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-vite-plugin@6709

@tanstack/solid-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router@6709

@tanstack/solid-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-devtools@6709

@tanstack/solid-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-ssr-query@6709

@tanstack/solid-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start@6709

@tanstack/solid-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-client@6709

@tanstack/solid-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-server@6709

@tanstack/start-client-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-client-core@6709

@tanstack/start-fn-stubs

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-fn-stubs@6709

@tanstack/start-plugin-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-plugin-core@6709

@tanstack/start-server-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-core@6709

@tanstack/start-static-server-functions

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-static-server-functions@6709

@tanstack/start-storage-context

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-storage-context@6709

@tanstack/valibot-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/valibot-adapter@6709

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/TanStack/router/@tanstack/virtual-file-routes@6709

@tanstack/vue-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-router@6709

@tanstack/vue-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-router-devtools@6709

@tanstack/vue-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-router-ssr-query@6709

@tanstack/vue-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start@6709

@tanstack/vue-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start-client@6709

@tanstack/vue-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start-server@6709

@tanstack/zod-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/zod-adapter@6709

commit: ff1b934

@birkskyum birkskyum changed the title Add vite as direct dev depencency testing: add vite as direct dev depencency Feb 20, 2026
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
packages/react-router/package.json (1)

95-97: ⚠️ Potential issue | 🟡 Minor

"node": ">=12" is inconsistent with Vite 7's Node.js requirement.

Vite 7 requires Node.js 20.19+ or 22.12+, as Node.js 18 was dropped after reaching EOL in April 2025. With vite now an explicit direct devDependency, this inconsistency becomes more visible — any developer or CI job running Node.js < 20.19 will fail the vite build script. This engines field was pre-existing but is worth updating alongside this change.

🛠️ Proposed fix
-    "node": ">=12"
+    "node": ">=20.19.0"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/react-router/package.json` around lines 95 - 97, The engines field
currently specifies "node": ">=12" which is inconsistent with Vite 7's
requirement; update the package.json "engines" entry to require a Node version
compatible with Vite 7 (for example "node": ">=20.19" or ">=22.12" or a range
that covers both, e.g., ">=20.19 || >=22.12") so CI and local builds won't fail
when running npm/yarn scripts that invoke vite; locate the "engines" object in
package.json and replace the node constraint accordingly.
packages/router-ssr-query-core/package.json (1)

63-65: ⚠️ Potential issue | 🟡 Minor

Same engines.node / Vite 7 Node.js requirement mismatch as router-generator

"node": ">=12" (Line 64) is incompatible with Vite 7's Node.js requirement of 20.19+, 22.12+. Recommendation is the same as for packages/router-generator: raise the engine constraint to >=20.19 to accurately reflect the build-time requirement.

🛠️ Suggested fix
   "engines": {
-    "node": ">=12"
+    "node": ">=20.19"
   },

Also applies to: 68-69

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/router-ssr-query-core/package.json` around lines 63 - 65, Update the
package.json engines.node constraint to match Vite 7's minimum Node.js
requirement: change the "engines": { "node": ">=12" } entry to "node": ">=20.19"
(and update any duplicate engines.node entries elsewhere in this package, e.g.,
the other occurrence referenced around lines 68-69) so the build-time Node
requirement is accurately represented.
packages/router-generator/package.json (1)

64-65: ⚠️ Potential issue | 🟡 Minor

engines.node is inconsistent with Vite 7's Node.js requirement

The package declares "node": ">=12" (Line 65), but Vite 7 requires Node.js version 20.19+, 22.12+. Adding vite explicitly to devDependencies sharpens this contradiction: any contributor (or CI runner) on Node 12–19 will fail at vite build even though the engine field advertises compatibility.

Since Vite is build-time only, published package consumers are not affected, but the engine constraint should either be narrowed to >=20.19 or the Vite requirement should be noted in contributing docs.

🛠️ Suggested fix
   "engines": {
-    "node": ">=12"
+    "node": ">=20.19"
   },

Also applies to: 78-79

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/router-generator/package.json` around lines 64 - 65, The
engines.node field currently says ">=12" but Vite 7 (added to devDependencies)
requires Node 20.19+ (and 22.12+), so update the package metadata to reflect the
build-time Node requirement: change the engines.node constraint to a minimum
compatible version (e.g., ">=20.19") and/or add a clear note in CONTRIBUTING.md
that contributors and CI must use Node 20.19+ for local builds (reference the
engines.node field and the vite devDependency to locate where to change and
document).
🧹 Nitpick comments (2)
packages/react-router-ssr-query/package.json (1)

70-70: Consider upgrading @vitejs/plugin-react to ^5.x.

The latest published version of @vitejs/plugin-react is 5.1.4. The current ^4.3.4 range will resolve to the latest 4.x release, which is fine — @vitejs/plugin-react 4.x explicitly added Vite 7 compatibility — but since you're now pinning Vite 7 directly, aligning the plugin to the current major (^5.x) keeps the dependency surface consistent.

♻️ Proposed update
-    "@vitejs/plugin-react": "^4.3.4",
+    "@vitejs/plugin-react": "^5.1.4",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/react-router-ssr-query/package.json` at line 70, Update the
"@vitejs/plugin-react" dependency in package.json from "^4.3.4" to a 5.x range
(e.g. "^5.1.4") by editing the "@vitejs/plugin-react" entry, then run your
package manager install to refresh node_modules and the lockfile and verify the
build/tests (the targeted symbol is the "@vitejs/plugin-react" dependency in
package.json).
packages/router-vite-plugin/package.json (1)

68-71: Add vite to peerDependencies for this Vite plugin package.

The package @tanstack/router-vite-plugin is explicitly a Vite-specific wrapper, and establishing convention for Vite plugin packages is to declare vite in peerDependencies so consumers receive package-manager warnings if they use an incompatible Vite version. While the underlying @tanstack/router-plugin already declares vite as an optional peer dependency, this wrapper should also declare it to be explicit about its bundler target.

🔧 Suggested addition
  "devDependencies": {
    "vite": "^7.3.1"
-  }
+  },
+  "peerDependencies": {
+    "vite": ">=5.0.0 || >=6.0.0 || >=7.0.0"
+  }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/router-vite-plugin/package.json` around lines 68 - 71, Update the
package manifest for the Vite plugin package by adding "vite" with an
appropriate semver range to the peerDependencies section of
packages/router-vite-plugin/package.json (so consumers get warnings for
incompatible Vite versions); keep "vite" in devDependencies for local dev
tooling but ensure the peerDependencies entry mirrors the supported range (e.g.,
same major range used by `@tanstack/router-plugin`) and include it under the
"peerDependencies" key alongside any existing peers.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/history/package.json`:
- Around line 58-60: The package.json "engines" entry currently pins "node":
">=12" which is incompatible with Vite 7; update the "engines" -> "node" field
(replacing the existing "node": ">=12" value) to require a modern Node runtime
that satisfies Vite 7 (e.g. ">=20.19.0") and ensure the change is applied
consistently across related packages (same "engines" field in other package.json
files if present).

In `@packages/valibot-adapter/package.json`:
- Line 73: The package.json declares "engines": {"node": ">=12"} but you added
"vite": "^7.3.1" which requires Node >=20.19 (or 22.12+), so update the
engines.node constraint to match Vite 7 (for example ">=20.19") in this
package.json and the sibling packages mentioned (valibot-adapter, e2e/e2e-utils,
packages/router-cli, packages/router-utils, packages/arktype-adapter) so the
engines field aligns with the vite devDependency and avoids a contradictory Node
requirement.

---

Outside diff comments:
In `@packages/react-router/package.json`:
- Around line 95-97: The engines field currently specifies "node": ">=12" which
is inconsistent with Vite 7's requirement; update the package.json "engines"
entry to require a Node version compatible with Vite 7 (for example "node":
">=20.19" or ">=22.12" or a range that covers both, e.g., ">=20.19 || >=22.12")
so CI and local builds won't fail when running npm/yarn scripts that invoke
vite; locate the "engines" object in package.json and replace the node
constraint accordingly.

In `@packages/router-generator/package.json`:
- Around line 64-65: The engines.node field currently says ">=12" but Vite 7
(added to devDependencies) requires Node 20.19+ (and 22.12+), so update the
package metadata to reflect the build-time Node requirement: change the
engines.node constraint to a minimum compatible version (e.g., ">=20.19") and/or
add a clear note in CONTRIBUTING.md that contributors and CI must use Node
20.19+ for local builds (reference the engines.node field and the vite
devDependency to locate where to change and document).

In `@packages/router-ssr-query-core/package.json`:
- Around line 63-65: Update the package.json engines.node constraint to match
Vite 7's minimum Node.js requirement: change the "engines": { "node": ">=12" }
entry to "node": ">=20.19" (and update any duplicate engines.node entries
elsewhere in this package, e.g., the other occurrence referenced around lines
68-69) so the build-time Node requirement is accurately represented.

---

Duplicate comments:
In `@e2e/e2e-utils/package.json`:
- Line 38: The package.json currently depends on "vite" ^7.3.1 which requires a
newer Node than the repo's "engines" declaration; update this package's
package.json to resolve the mismatch by either bumping the "engines" Node
version to meet Vite 7's requirement or pinning/downgrading "vite" to a version
compatible with the current "engines". Edit the package.json "vite" dependency
entry and the "engines" field so they are consistent (mirror the change made in
packages/valibot-adapter), ensuring the "vite" version and Node engine spec
align.

In `@packages/arktype-adapter/package.json`:
- Line 73: The package.json in packages/arktype-adapter declares "vite":
"^7.3.1" but the package's "engines" field does not match Vite v7's Node
requirement (same mismatch flagged for packages/valibot-adapter); update the
package.json "engines" to the same Node version range used for
packages/valibot-adapter (or alternatively pin Vite to a version compatible with
the current "engines") so Node requirements are consistent across adapters and
satisfy Vite v7; locate the package.json entry with "vite": "^7.3.1" and adjust
either the "engines" field or the Vite version accordingly.

In `@packages/router-cli/package.json`:
- Line 75: The package.json in packages/router-cli lists "vite": "^7.3.1" but
its "engines" Node version is inconsistent with Vite 7's Node requirement;
update the "engines" field in packages/router-cli/package.json to match the same
Node engine constraint used in packages/valibot-adapter (i.e., set engines.node
to the same version/range that supports Vite 7) so the Node requirement is
consistent across packages and satisfies Vite's minimum Node version.

In `@packages/router-utils/package.json`:
- Line 80: The package.json declares "vite": "^7.3.1" but the "engines" field
does not match Vite 7's Node requirement; update the package.json "engines"
entry so the "node" requirement is aligned (e.g., set "node": ">=18" to match
Vite 7 and the other package `valibot-adapter`) so all packages use the same
Node engine baseline.

---

Nitpick comments:
In `@packages/react-router-ssr-query/package.json`:
- Line 70: Update the "@vitejs/plugin-react" dependency in package.json from
"^4.3.4" to a 5.x range (e.g. "^5.1.4") by editing the "@vitejs/plugin-react"
entry, then run your package manager install to refresh node_modules and the
lockfile and verify the build/tests (the targeted symbol is the
"@vitejs/plugin-react" dependency in package.json).

In `@packages/router-vite-plugin/package.json`:
- Around line 68-71: Update the package manifest for the Vite plugin package by
adding "vite" with an appropriate semver range to the peerDependencies section
of packages/router-vite-plugin/package.json (so consumers get warnings for
incompatible Vite versions); keep "vite" in devDependencies for local dev
tooling but ensure the peerDependencies entry mirrors the supported range (e.g.,
same major range used by `@tanstack/router-plugin`) and include it under the
"peerDependencies" key alongside any existing peers.

@birkskyum birkskyum force-pushed the fix-vite-ecosystem-ci branch from e4b5f93 to c3669ac Compare February 20, 2026 00:17
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 9

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
packages/vue-router-devtools/package.json (1)

59-62: ⚠️ Potential issue | 🟠 Major

vite must move from dependencies to devDependencies.

vite is a build-time tool. Placing it under dependencies (rather than devDependencies) causes every consumer of @tanstack/vue-router-devtools to transitively install Vite at runtime, which is incorrect and inflates install cost for end users. The PR's stated goal is explicitly to add Vite as a dev dependency to allow CI overrides — this file has it in the wrong section. This appears to be a pre-existing misplacement that should be corrected as part of this PR.

🔧 Proposed fix
  "dependencies": {
-   "@tanstack/router-devtools-core": "workspace:*",
-   "vite": "^7.3.1"
+   "@tanstack/router-devtools-core": "workspace:*"
  },
  "devDependencies": {
    "@vitejs/plugin-vue-jsx": "^4.1.2",
+   "vite": "^7.3.1",
    "vue": "^3.5.13"
  },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/vue-router-devtools/package.json` around lines 59 - 62, Move the
"vite" entry out of the "dependencies" object and add it into "devDependencies"
for the `@tanstack/vue-router-devtools` package; specifically remove "vite":
"^7.3.1" from the dependencies section and place the same key/value under
devDependencies so Vite is only a build-time/dev tool and not transitively
installed by consumers.
packages/router-plugin/package.json (1)

121-125: ⚠️ Potential issue | 🟠 Major

Missing vite devDependency in devDependencies

The @tanstack/router-plugin package runs vite build in its build script and declares vite as an optional peer dependency, yet vite is not listed in its devDependencies. Every other package in the monorepo with a vite build script includes "vite": "^7.3.1" in devDependencies. Adding it here ensures consistency and allows build-time overrides to function correctly.

Proposed fix
  "devDependencies": {
    "@types/babel__core": "^7.20.5",
    "@types/babel__template": "^7.4.4",
-   "@types/babel__traverse": "^7.28.0"
+   "@types/babel__traverse": "^7.28.0",
+   "vite": "^7.3.1"
  },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/router-plugin/package.json` around lines 121 - 125, The package.json
for `@tanstack/router-plugin` is missing vite in devDependencies even though its
build script runs "vite build" and other packages include "vite": "^7.3.1";
update the package.json devDependencies block to add "vite": "^7.3.1" so the
build script has a local devDependency available and matches the monorepo
convention (edit the devDependencies entry in package.json for the package
referenced in this PR).
🧹 Nitpick comments (4)
packages/router-vite-plugin/package.json (1)

64-64: >=20 engine field is imprecise relative to Vite 7's actual minimum.

vite 7 requires Node.js 20.19+ or 22.12+, having dropped Node 18 at its EOL. The engine field here is set to >=20, which permits Node 20.0.0–20.18.x — a range that will fail when Vite 7 is actually installed or invoked. Since vite is a devDependency, this only affects contributors and CI rather than package consumers, and Vite 7.3.1's own engines field will enforce the constraint transitively. Still, the advisory value of this package's engines field is weakened by the imprecision.

Consider tightening to >=20.19 to faithfully document the actual minimum required by the devDependencies.

🔧 Suggested fix
-    "node": ">=20"
+    "node": ">=20.19"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/router-vite-plugin/package.json` at line 64, Update the package.json
engines field to accurately reflect Vite 7's minimum Node requirement: change
the "node" value from ">=20" to ">=20.19" so contributors/CI are warned about
the actual minimum; locate the "engines" entry in package.json and replace the
existing "node": ">=20" with "node": ">=20.19".
packages/solid-router-devtools/package.json (2)

17-25: "react" keyword in a SolidJS package

Line 18 includes "react" in the keywords array for @tanstack/solid-router-devtools. This is a copy-paste artifact from the React devtools package and may cause unwanted search/discovery noise.

♻️ Proposed fix
  "keywords": [
-   "react",
    "location",
    "router",
    ...
  ]
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/solid-router-devtools/package.json` around lines 17 - 25, The
package.json for `@tanstack/solid-router-devtools` contains an incorrect "react"
keyword (copy-paste artifact); open the package.json and remove "react" from the
"keywords" array and replace/add the appropriate SolidJS keyword(s) such as
"solid" or "solidjs" so the keywords accurately reflect the package (look for
the "keywords" array entry in the package.json to update).

77-79: Peer dependencies should use workspace:* instead of workspace:^

@tanstack/router-core and @tanstack/solid-router are internal workspace packages but use workspace:^. Based on learnings, internal dependencies should use the workspace:* protocol.

♻️ Proposed fix
  "peerDependencies": {
    "@tanstack/router-core": "workspace:^",
+   "@tanstack/router-core": "workspace:*",
    "@tanstack/solid-router": "workspace:^",
+   "@tanstack/solid-router": "workspace:*",
    "solid-js": "^1.9.10"
  }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/solid-router-devtools/package.json` around lines 77 - 79, Update the
peerDependencies entries for the internal workspace packages to use the
workspace:* protocol instead of workspace:^; specifically change
"@tanstack/router-core" and "@tanstack/solid-router" in package.json from
"workspace:^" to "workspace:*" so they resolve to the local workspace packages
reliably.
packages/vue-router/package.json (1)

69-71: >=20 is slightly loose relative to what Vite 7 actually requires at runtime.

Vite 7 requires Node.js 20.19+, 22.12+ (to enable native require(esm)). Setting the engine floor to >=20 means a contributor on Node 20.0–20.18 would satisfy this package's engines constraint but still fail when Vite 7 tries to run. Since vite is a devDependency this doesn't affect package consumers, but it can produce confusing build failures in CI or local setups. Consider tightening to ">=20.19" (or ">=20.19 || >=22.12") to match Vite 7's actual minimum.

🛠️ Proposed fix
   "engines": {
-    "node": ">=20"
+    "node": ">=20.19"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/vue-router/package.json` around lines 69 - 71, The engines entry in
package.json currently says "node": ">=20" which is too loose for Vite 7; update
the "engines" -> "node" value in packages/vue-router/package.json to match Vite
7's runtime minimum (for example use ">=20.19" or the range ">=20.19 ||
>=22.12") so contributors running Node 20.0–20.18 won't encounter mysterious
Vite failures; change the string in the engines object and run the dev/test/CI
commands that use the devDependency vite to verify the new constraint works as
expected.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@e2e/e2e-utils/package.json`:
- Line 33: The package.json's engines.node currently uses ">=20" which allows
Node 20.0.0–20.18.x where Vite 7 fails; update the engines.node field to a
semver range that enforces Vite's minima (for example: ">=20.19.0 <21 ||
>=22.12.0") so CI and local installs reject unsupported Node versions—edit the
engines.node entry in package.json accordingly.

In `@packages/history/package.json`:
- Around line 58-60: Update the engines constraint in package.json so the "node"
field requires Node.js 20.19.0 or newer (e.g., change "node": ">=20" to "node":
">=20.19.0") to ensure compatibility with Vite 7; locate the "engines" object in
packages/history/package.json and replace the existing value accordingly.

In `@packages/react-router-devtools/package.json`:
- Line 62: The engines entry "node": ">=20" is too loose for the pinned
devDependency vite@^7.3.1 which requires Node 20.19+ (or 22.12+); update the
package.json engines field to "node": ">=20.19.0" so the constraint matches Vite
7's minimum Node.js requirement and prevents installing on unsupported 20.x
releases.

In `@packages/router-devtools-core/package.json`:
- Line 62: Update the package.json engines.node constraint to require the Vite 7
minimums: replace the loose ">=20" value for engines.node with ">=20.19 ||
>=22.12" so Node 20.0.0–20.18.x are excluded; apply the same change to other
affected packages (e.g., react-router-devtools, solid-router-devtools,
router-vite-plugin) to avoid CI/developer build failures when running the
"build" script that invokes vite.

In `@packages/router-devtools/package.json`:
- Line 62: The engines.node range in package.json is too permissive ("node":
">=20") and allows unsupported Node 20.0–20.18; update the engines.node entry to
require Node versions compatible with Vite 7 (for example set "engines.node" to
">=20.19.0 || >=22.12.0") so CI and developers on older 20.x patch releases are
excluded.

In `@packages/router-generator/package.json`:
- Line 65: Update the engines.node constraint in packages/router-generator's
package.json: replace the loose ">=20" with a semver range that matches Vite 7's
requirements (e.g. ">=20.19.0 || >=22.12.0") so that running the existing
scripts.build (vite build) won't pick an unsupported Node 20.x subpatch; edit
the engines.node field accordingly.

In `@packages/router-plugin/package.json`:
- Around line 103-105: The package.json change raises the Node engine constraint
("engines.node" in package.json) from ">=12" to ">=20", which is a
semver-breaking change for downstream consumers; either (A) keep the
engines.node >=20 but ensure the next published release is a major release (bump
the package version major according to your release tooling) or (B) if you
intend a non-major release, roll back the engines.node change to the previous
constraint (e.g., ">=12") and add a clear changelog entry calling out that Node
support was tightened and will be a breaking change in the next major; reference
the engines.node field in package.json and the project changelog entry when
making the change.

In `@packages/solid-router-devtools/package.json`:
- Line 66: The "node" engine constraint in packages/solid-router-devtools's
package.json is too broad (">=20") and permits Node 20.0–20.18 which are
incompatible with Vite 7; update the package.json engines.node field to require
Node 20.19+ or 22.12+ (for example ">=20.19 || >=22.12") so
installs/environments are prevented from using older 20.x releases.

In `@packages/virtual-file-routes/package.json`:
- Around line 54-56: The engines.node constraint in package.json is too loose
versus the Vite 7 devDependency (vite@^7.3.1); update the "engines": { "node":
... } entry to require Node versions compatible with Vite 7 (for example
">=20.19.0 || >=22.12.0") so Node 20.0–20.18 won't satisfy the package but will
avoid install-time failures with vite@^7.3.1.

---

Outside diff comments:
In `@packages/router-plugin/package.json`:
- Around line 121-125: The package.json for `@tanstack/router-plugin` is missing
vite in devDependencies even though its build script runs "vite build" and other
packages include "vite": "^7.3.1"; update the package.json devDependencies block
to add "vite": "^7.3.1" so the build script has a local devDependency available
and matches the monorepo convention (edit the devDependencies entry in
package.json for the package referenced in this PR).

In `@packages/vue-router-devtools/package.json`:
- Around line 59-62: Move the "vite" entry out of the "dependencies" object and
add it into "devDependencies" for the `@tanstack/vue-router-devtools` package;
specifically remove "vite": "^7.3.1" from the dependencies section and place the
same key/value under devDependencies so Vite is only a build-time/dev tool and
not transitively installed by consumers.

---

Nitpick comments:
In `@packages/router-vite-plugin/package.json`:
- Line 64: Update the package.json engines field to accurately reflect Vite 7's
minimum Node requirement: change the "node" value from ">=20" to ">=20.19" so
contributors/CI are warned about the actual minimum; locate the "engines" entry
in package.json and replace the existing "node": ">=20" with "node": ">=20.19".

In `@packages/solid-router-devtools/package.json`:
- Around line 17-25: The package.json for `@tanstack/solid-router-devtools`
contains an incorrect "react" keyword (copy-paste artifact); open the
package.json and remove "react" from the "keywords" array and replace/add the
appropriate SolidJS keyword(s) such as "solid" or "solidjs" so the keywords
accurately reflect the package (look for the "keywords" array entry in the
package.json to update).
- Around line 77-79: Update the peerDependencies entries for the internal
workspace packages to use the workspace:* protocol instead of workspace:^;
specifically change "@tanstack/router-core" and "@tanstack/solid-router" in
package.json from "workspace:^" to "workspace:*" so they resolve to the local
workspace packages reliably.

In `@packages/vue-router/package.json`:
- Around line 69-71: The engines entry in package.json currently says "node":
">=20" which is too loose for Vite 7; update the "engines" -> "node" value in
packages/vue-router/package.json to match Vite 7's runtime minimum (for example
use ">=20.19" or the range ">=20.19 || >=22.12") so contributors running Node
20.0–20.18 won't encounter mysterious Vite failures; change the string in the
engines object and run the dev/test/CI commands that use the devDependency vite
to verify the new constraint works as expected.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/vue-router-devtools/package.json (1)

59-66: ⚠️ Potential issue | 🔴 Critical

vite is mis-placed under dependencies instead of devDependencies.

The PR's stated intent is to add Vite as a dev dependency so the vite-ecosystem-ci workflow can override it. However, in the current diff "vite": "*" sits in the dependencies block (Line 61), not in devDependencies (Lines 63–66). Publishing with vite in dependencies will force every consumer of @tanstack/vue-router-devtools to install Vite and all of its transitive dependencies as a runtime dep, significantly bloating installs. The AI summary for this file also confirms the original entry was in devDependencies.

🐛 Proposed fix
   "dependencies": {
     "@tanstack/router-devtools-core": "workspace:*",
-    "vite": "*"
   },
   "devDependencies": {
     "@vitejs/plugin-vue-jsx": "^4.1.2",
-    "vue": "^3.5.13"
+    "vue": "^3.5.13",
+    "vite": "*"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/vue-router-devtools/package.json` around lines 59 - 66, The
package.json currently lists "vite": "*" under "dependencies" which wrongly
makes Vite a runtime dependency; move the "vite": "*" entry from the
"dependencies" object into the "devDependencies" object (alongside
"@vitejs/plugin-vue-jsx" and "vue") so Vite is only a dev-time dependency for
`@tanstack/vue-router-devtools` and can be overridden by the vite-ecosystem-ci
workflow.
🧹 Nitpick comments (2)
packages/solid-start/package.json (1)

116-120: Consider aligning devDependencies.vite with the peerDependencies range.

devDependencies uses "*" (any version, including pre-7) while peerDependencies declares ">=7.0.0". The vite-ecosystem-ci override works equally well with ">=7.0.0", which also documents the minimum supported version clearly and avoids accidentally resolving a very old Vite in environments without a lockfile.

♻️ Proposed alignment
  "devDependencies": {
    "@tanstack/router-utils": "workspace:*",
-   "vite": "*"
+   "vite": ">=7.0.0"
  },
  "peerDependencies": {
    "solid-js": ">=1.0.0",
    "vite": ">=7.0.0"
  }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/solid-start/package.json` around lines 116 - 120, Update
devDependencies.vite from "*" to the same minimum range as peerDependencies
(">=7.0.0") so the package declares a consistent supported Vite baseline; edit
the package.json entry for devDependencies.vite to ">=7.0.0" to match the
peerDependencies.vite range and avoid resolving older Vite versions.
packages/react-start-client/package.json (1)

70-71: Upgrade @vitejs/plugin-react to ^5.0.0 for Vite ecosystem-ci compatibility.

The current pin of "^4.3.4" limits Vite support to v6.0.0, while @vitejs/plugin-react@5.x supports up to v7.0.0. When vite-ecosystem-ci overrides Vite to v8, @vitejs/plugin-react@4.x will produce unmet peer dependency warnings or failures that may obscure whether incompatibility stems from the TanStack code or just the plugin's peer constraint.

Upgrading to "^5.0.0" ensures you're on the actively maintained branch (latest is 5.1.4), which will be the first to support Vite 8 when it ships. The v4.x line appears to be winding down (latest patch is 4.7.0).

♻️ Proposed update
-    "@vitejs/plugin-react": "^4.3.4",
+    "@vitejs/plugin-react": "^5.0.0",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/react-start-client/package.json` around lines 70 - 71, The
package.json currently pins "@vitejs/plugin-react" at "^4.3.4", which can
produce peer dependency warnings with newer Vite versions; update the dependency
version specifier for "@vitejs/plugin-react" to "^5.0.0" (or a later 5.x like
"^5.1.4") in packages/react-start-client's package.json to ensure compatibility
with Vite 7/8; run npm/yarn install afterwards and verify build/start scripts
still work and no peer dependency warnings remain.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@packages/vue-router-devtools/package.json`:
- Around line 59-66: The package.json currently lists "vite": "*" under
"dependencies" which wrongly makes Vite a runtime dependency; move the "vite":
"*" entry from the "dependencies" object into the "devDependencies" object
(alongside "@vitejs/plugin-vue-jsx" and "vue") so Vite is only a dev-time
dependency for `@tanstack/vue-router-devtools` and can be overridden by the
vite-ecosystem-ci workflow.

---

Duplicate comments:
In `@packages/valibot-adapter/package.json`:
- Around line 63-73: The engines.node constraint in package.json has been
updated to ">=20.19" to match Vite 7's minimum; ensure the "engines" object
(key: "node") in packages/valibot-adapter/package.json is set to ">=20.19" and
that devDependencies entries (notably "vite") remain compatible with Node
>=20.19—no further change required other than confirming package.json now
contains the updated "engines": {"node":"=>20.19"} value and that CI/test
configs (if any) reflect the new Node minimum.

In `@packages/virtual-file-routes/package.json`:
- Around line 54-59: Update the Node engine constraint to satisfy Vite 7 by
setting "engines".node to ">=20.19" in packages/virtual-file-routes/package.json
(the current diff already shows this change) and ensure devDependencies still
lists "vite"; also propagate the same minimum Node constraint to any other
package.json files that reference "vite" to avoid engine mismatches, then run
the build/CI to confirm Vite's engine check passes.

---

Nitpick comments:
In `@packages/react-start-client/package.json`:
- Around line 70-71: The package.json currently pins "@vitejs/plugin-react" at
"^4.3.4", which can produce peer dependency warnings with newer Vite versions;
update the dependency version specifier for "@vitejs/plugin-react" to "^5.0.0"
(or a later 5.x like "^5.1.4") in packages/react-start-client's package.json to
ensure compatibility with Vite 7/8; run npm/yarn install afterwards and verify
build/start scripts still work and no peer dependency warnings remain.

In `@packages/solid-start/package.json`:
- Around line 116-120: Update devDependencies.vite from "*" to the same minimum
range as peerDependencies (">=7.0.0") so the package declares a consistent
supported Vite baseline; edit the package.json entry for devDependencies.vite to
">=7.0.0" to match the peerDependencies.vite range and avoid resolving older
Vite versions.

@birkskyum birkskyum merged commit 4def459 into main Feb 20, 2026
6 checks passed
@birkskyum birkskyum deleted the fix-vite-ecosystem-ci branch February 20, 2026 00:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Comments