devtools-ui 0.7.0 breaks SSR boot with solid-js <=1.9.12: `use` is not exported by solid-js/web server build
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 75/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Calme
- Stack technique
- typescript, vite
- Domaine
- tooling
Piste de recherche
Commencez par src/components/theme.tsx et reproduisez l’échec de l’optimisation des dépendances SSR avec solid-js 1.9.12 et l’import minimal pour la condition serveur décrit dans l’issue. Résolvez le problème de compatibilité du package publié, puis vérifiez que vite dev démarre pour une configuration SSR avec la plage de dépendances concernée et que l’erreur d’export manquant ne se produit plus.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
TanStack Devtools version
@tanstack/devtools 0.14.0 / @tanstack/devtools-ui 0.7.0 (still present in 0.14.1 / 0.7.1, the latest at time of filing)
Framework/Library version
TanStack Start (@tanstack/react-start 1.168.x) + Vite 8 (rolldown) + @cloudflare/vite-plugin, solid-js 1.9.12 in the lockfile
Describe the bug
Upgrading @tanstack/devtools 0.13.0 → 0.14.0 (which bumps the bundled @tanstack/devtools-ui 0.6.0 → 0.7.0) makes vite dev fail to boot in any app whose SSR environment processes devtools, when the resolved solid-js is ≤ 1.9.12:
Error: Error during dependency optimization:
[MISSING_EXPORT] "use" is not exported by "node_modules/solid-js/web/dist/server.js".
╭─[ node_modules/@tanstack/devtools/node_modules/@tanstack/devtools-ui/dist/esm/components/theme.js:2:45 ]
│
2 │ import { createComponent, insert, template, use } from "solid-js/web";
│ ─┬─
│ ╰─── Missing export
The dev server never starts, which also takes down every Playwright run driven by vite dev.
Root cause
@tanstack/devtools-ui0.7.0 (PR #492, commit a46d1f5) wrappedThemeContextProvider's children in<span style="display:contents" ref={setContainer}>so it can callensureDevtoolsStyles(element.ownerDocument)(src/components/theme.tsx). The Solid compiler emits thatrefasuse(setContainer, _el$), so the published ESM (dist/esm/components/theme.js) now importsusefromsolid-js/web. In 0.6.0 that file imported onlycreateComponent.- Under the
node/SSR export condition,solid-js/webresolves toweb/dist/server.js. That server build exported nouseat all through solid-js 1.9.12; solid-js 1.9.13 (2026-05-15) added it as anotSupstub (notSup as use). @tanstack/devtools-uideclaressolid-js: >=1.9.7(and@tanstack/devtoolsdepends on^1.9.9), so resolvers happily keep ≤ 1.9.12 in existing lockfiles — a lockfile that worked with devtools 0.13.0 hard-fails right after the bump.
Client-only setups never hit it (the browser build has always exported use), which is presumably why it shipped unnoticed. It surfaces wherever the SSR side bundles or import-validates devtools — e.g. TanStack Start with rolldown-vite's SSR dependency optimizer.
Steps to reproduce
- Lockfile with
solid-js@1.9.12(any version ≥1.9.7 and ≤1.9.12 works) and@tanstack/devtools@0.14.x. - Import devtools in an app whose Vite SSR environment processes it (TanStack Start default setup is enough).
vite dev→MISSING_EXPORT "use"during SSR dependency optimization.
Or minimally, in any Node ESM context resolving the server condition:
import { use } from 'solid-js/web'; // solid-js@1.9.12, server condition → SyntaxError/MISSING_EXPORT
Suggested fix
Raise the solid-js floor to ^1.9.13 in @tanstack/devtools-ui's (and @tanstack/devtools's) dependency ranges, so resolvers pull a solid-js whose server build has the use stub. Alternatively avoid the ref → use emission in output that gets loaded under the server condition.
Workaround for affected users: force-dedupe solid-js to ≥ 1.9.13 (we removed the stale nested resolutions from the lockfile so a single hoisted 1.9.15 serves everything; that fixes the boot).
- Langage dominant
- TypeScript
- Étoiles
- 499
- Forks
- 100
- Merge moyen
- 1 j 17 h
- PR mergées (30 j)
- 4
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de TanStack/devtools
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 74/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
Toutes les issues de TanStack/devtools
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
copse-dev/agent-pane#2953 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
[Bug]: Matrix progress drafts fail with "Matrix runtime not initialized" during tool activity Ouvertebug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Client support matrix inclusion Ouverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
calcite-components needs triage refactor
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Esri/calcite-design-system#15203 ·