Skip to content

feat(kit)!: move json-render to @vitejs/devtools - #604

Merged
webfansplz merged 2 commits into
mainfrom
feat/kit-drop-json-render
Oct 7, 2026
Merged

webfansplz merged 2 commits into
mainfrom
feat/kit-drop-json-render

Conversation

@antfubot

@antfubot antfubot commented Oct 7, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Shrinks the install footprint of @vitejs/devtools-kit by moving @devframes/json-render out of it.

@devframes/json-render pulls @json-render/core (1.2 MB) and zod (5.9 MB) — about 7.4 MB, more than all of kit's other dependencies combined (devframe + @devframes/hub + the rest ≈ 1.4 MB). @devframes/hub does not depend on it, and createKitContext is only ever called by Vite DevTools, so core is the natural owner.

What changes:

  • kit drops the @devframes/json-render dependency, the createJsonRenderer member on KitNodeContext, defineJsonRenderSpec, and the JsonRender* / DevToolsViewJsonRender type re-exports. Kit's dist/ has no json-render reference left.
  • core adds @devframes/json-render, attaches ctx.createJsonRenderer() in createDevToolsContext, and types it onto KitNodeContext with declare module '@vitejs/devtools-kit'.
  • New subpath @vitejs/devtools/json-render exports defineJsonRenderSpec and the JsonRenderSpec / JsonRenderElement / JsonRenderer / JsonRenderView / JsonRenderViewRef / DevToolsViewJsonRender types. The root entry still loads the augmentation, so anyone importing DevTools() in vite.config.ts keeps the typed ctx.createJsonRenderer.
  • examples/plugin-git-ui, docs/kit/json-render.md, and the kit skill import the types from the new subpath.
  • tsnapi API snapshots regenerated (TSNAPI_ALLOW_BREAKING=1).

Plugins that call ctx.createJsonRenderer() under Vite DevTools keep working with no code change.

BREAKING CHANGE (kit only): defineJsonRenderSpec, JsonRenderSpec, JsonRenderElement, JsonRenderer, JsonRenderView, JsonRenderViewRef and DevToolsViewJsonRender are no longer exported from @vitejs/devtools-kit. Import them from @vitejs/devtools/json-render.

Linked Issues

Additional context

Reviewers: the one design point worth a look is packages/core/src/node/json-render.ts — the declare module '@vitejs/devtools-kit' augmentation merges through kit's export type * re-export of KitNodeContext (verified by vue-tsc -b and in the built .d.ts, where root and subpath share the chunk carrying it).

local-pkg (≈1 MB via mlly/acorn) was considered and intentionally kept.

Created with the help of an agent.

`@devframes/json-render` pulled `@json-render/core` and `zod` (~7.4 MB)
into every `@vitejs/devtools-kit` install, more than all of kit's other
dependencies combined. Vite DevTools is the only host that creates the kit
context, so it now owns the dependency and attaches
`ctx.createJsonRenderer()` itself, typing it onto `KitNodeContext` via
module augmentation.

Plugins running under `@vitejs/devtools` keep working unchanged. Authors
who import `JsonRenderSpec` / `JsonRenderer` / `defineJsonRenderSpec` now
take them from `@vitejs/devtools` instead of the kit.

BREAKING CHANGE: `@vitejs/devtools-kit` no longer exports
`defineJsonRenderSpec`, `JsonRenderSpec`, `JsonRenderElement`,
`JsonRenderer`, `JsonRenderView`, `JsonRenderViewRef` or
`DevToolsViewJsonRender`; import them from `@vitejs/devtools`.
@pkg-pr-new

pkg-pr-new Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

@vitejs/devtools

npm i https://pkg.pr.new/@vitejs/devtools@604

@vitejs/devtools-kit

npm i https://pkg.pr.new/@vitejs/devtools-kit@604

@vitejs/devtools-oxc

npm i https://pkg.pr.new/@vitejs/devtools-oxc@604

@vitejs/devtools-rolldown

npm i https://pkg.pr.new/@vitejs/devtools-rolldown@604

@vitejs/devtools-vite

npm i https://pkg.pr.new/@vitejs/devtools-vite@604

@vitejs/devtools-vitest

npm i https://pkg.pr.new/@vitejs/devtools-vitest@604

commit: 4f7a9f1

…nder

Keeps the root entry focused on the plugin and hub API. The root still
loads the `KitNodeContext.createJsonRenderer` augmentation so plugin
authors who only import `DevTools()` keep the typed method.
@antfu
antfu requested a review from webfansplz October 7, 2026 03:40
@webfansplz
webfansplz merged commit b3a12fb into main Oct 7, 2026
10 checks passed
@webfansplz
webfansplz deleted the feat/kit-drop-json-render branch October 7, 2026 06: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