Skip to content

fix(tanstack-start): pin solid-js to 1.x for devtools peer - #496

Merged
stormslowly merged 1 commit into
mainfrom
fix/tanstack-start-solid-peer
Aug 21, 2026
Merged

fix(tanstack-start): pin solid-js to 1.x for devtools peer#496
stormslowly merged 1 commit into
mainfrom
fix/tanstack-start-solid-peer

Conversation

@stormslowly

Copy link
Copy Markdown
Contributor

Why

The rspack ecosystem CI run fails at build:rsbuild on rsbuild/tanstack-start with 64 module linking errors:

× ESModulesLinkingError: export 'onMount' (imported as 'onMount') was not found in 'solid-js'
× Package subpath './web' is not defined by "exports" in .../solid-js/package.json

@tanstack/devtools declares solid-js: >=1.9.7 as a peer dependency. Since #495 introduced solid-js@2.0.0-rc.0 into the workspace, a full re-resolution (which ecosystem CI triggers by injecting @rspack/* overrides) dedupes that peer onto 2.0.0-rc.0 instead of the package's own solid-js: ^1.9.9 dependency. Solid 2 removed onMount / batch / on / getListener and the ./web subpath export, so the devtools bundle no longer links.

Before / after, same install (pnpm install --prefer-frozen-lockfile with @rspack/* overrides injected):

@tanstack/devtools resolves to rsbuild/tanstack-start build
before solid-js@2.0.0-rc.0 fails, 64 errors
after solid-js@1.9.13 passes

What

Declare solid-js: ^1.9.9 in rsbuild/tanstack-start, so this example provides the peer itself and its subtree stays on Solid 1.x. The Solid 2 RC in rsbuild/solid is untouched.

Rejected alternatives: dedupePeers: false (does not change the resolution), and a workspace-wide solid-js override (would downgrade the Solid example and undo #495).

Verified locally by running the full ecosystem CI sequence — build:rspack:eco-ci, test:rspack:eco-ci, build:rsbuild, build:rsdoctor, build:rspress, build:rslib — plus pnpm lint.

@tanstack/devtools declares `solid-js: >=1.9.7` as a peer dependency, so a
full re-resolution dedupes it onto the workspace's solid-js@2.0.0-rc.0
(introduced by #495 for the Rsbuild Solid example) instead of its own
`solid-js: ^1.9.9` dependency. Solid 2 dropped `onMount`/`batch`/`on`/
`getListener` and the `./web` subpath export, breaking the build.

Declaring solid-js explicitly pins this example's subtree back to 1.x
without touching the Solid example.
@stormslowly
stormslowly marked this pull request as draft August 21, 2026 08:29
@stormslowly
stormslowly marked this pull request as ready for review August 21, 2026 08:35
@stormslowly
stormslowly merged commit e834e52 into main Aug 21, 2026
1 check passed
@stormslowly
stormslowly deleted the fix/tanstack-start-solid-peer branch August 21, 2026 08:35
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