From 186448490503ec6a4a099bef1a8733492c1ace43 Mon Sep 17 00:00:00 2001 From: "Anthony Fu (via agent)" Date: Sat, 15 Aug 2026 12:00:01 +0000 Subject: [PATCH 1/3] feat(plugin-inspect): serve the SPA from a lockstep client-assets package Pilot of the deferred-client-assets pattern: the inspector's Vue SPA now ships in a new @devframes/plugin-inspect-client package instead of inside the node tarball, which drops from ~409 KB (90% SPA) to ~18 KB. Its Vite build emits into plugins/inspect/client-pkg/dist, and cli.distDir points at a RemoteAssets declaration (package + version + resolveFrom). In this monorepo the client package is a dev-only workspace link, so resolveFrom short-circuits to its built dist (zero network); published consumers get the assets on demand through devframe's caching CDN back-proxy, or by installing the client package for an offline/air-gap UI. Wires the nested workspace glob (plugins/*/client-pkg), turbo outputs, a knip override for the runtime-string dependency, and updates the plugin's test harness to resolve the source. --- knip.jsonc | 18 +++++++++++++++ plugins/inspect/client-pkg/package.json | 30 +++++++++++++++++++++++++ plugins/inspect/package.json | 1 + plugins/inspect/src/index.ts | 20 ++++++++++------- plugins/inspect/src/spa/vite.config.ts | 5 ++++- plugins/inspect/test/_utils.ts | 29 +++++++++++++++++++----- pnpm-lock.yaml | 5 +++++ pnpm-workspace.yaml | 1 + turbo.json | 2 +- 9 files changed, 95 insertions(+), 16 deletions(-) create mode 100644 plugins/inspect/client-pkg/package.json diff --git a/knip.jsonc b/knip.jsonc index 4c66d4e7..4fcb69aa 100644 --- a/knip.jsonc +++ b/knip.jsonc @@ -156,6 +156,24 @@ "src/{client,node,rpc,inject,engine,registry}/index.ts" ] }, + "plugins/inspect": { + // The lockstep client-assets package is referenced only as a runtime + // string (`${pkg.name}-client` in `cli.distDir`), never imported, so + // knip can't see the dev-only workspace link that makes it resolvable + // in the monorepo. Repeat the `plugins/*` entry glob (a workspace + // config replaces, not merges, it). + "entry": [ + "src/{index,cli,vite,constants,types}.ts", + "src/{client,node,rpc,inject,engine,registry}/index.ts" + ], + "ignoreDependencies": ["@devframes/plugin-inspect-client"] + }, + "plugins/inspect/client-pkg": { + // Assets-only package: no source, just a prebuilt `dist` produced by + // the sibling plugin's Vite build. + "entry": [], + "project": [] + }, "plugins/a11y": { // `storybook-solidjs-vite` (not an official `@storybook/*` framework // package) doesn't match knip's Storybook plugin trigger, so it never diff --git a/plugins/inspect/client-pkg/package.json b/plugins/inspect/client-pkg/package.json new file mode 100644 index 00000000..31ac4864 --- /dev/null +++ b/plugins/inspect/client-pkg/package.json @@ -0,0 +1,30 @@ +{ + "name": "@devframes/plugin-inspect-client", + "type": "module", + "version": "0.9.0-beta.4", + "description": "Prebuilt browser assets (SPA) for @devframes/plugin-inspect, served on demand through devframe's remote-assets back-proxy.", + "author": "Anthony Fu ", + "license": "MIT", + "homepage": "https://github.com/devframes/devframe#readme", + "repository": { + "directory": "plugins/inspect/client-pkg", + "type": "git", + "url": "git+https://github.com/devframes/devframe.git" + }, + "bugs": "https://github.com/devframes/devframe/issues", + "keywords": [ + "devframe", + "devframe-plugin", + "devtools", + "client-assets" + ], + "exports": { + "./package.json": "./package.json" + }, + "files": [ + "dist" + ], + "scripts": { + "prepack": "pnpm --filter @devframes/plugin-inspect run build" + } +} diff --git a/plugins/inspect/package.json b/plugins/inspect/package.json index 89075325..edcc90a3 100644 --- a/plugins/inspect/package.json +++ b/plugins/inspect/package.json @@ -63,6 +63,7 @@ "devDependencies": { "@antfu/design": "catalog:frontend", "@devframes/hub": "workspace:*", + "@devframes/plugin-inspect-client": "workspace:*", "@iconify-json/ph": "catalog:frontend", "@standard-schema/spec": "catalog:deps", "@storybook/addon-docs": "catalog:storybook", diff --git a/plugins/inspect/src/index.ts b/plugins/inspect/src/index.ts index 78553b7c..227a714e 100644 --- a/plugins/inspect/src/index.ts +++ b/plugins/inspect/src/index.ts @@ -1,6 +1,4 @@ -import type { DevframeDefinition } from 'devframe' -import { existsSync } from 'node:fs' -import { fileURLToPath } from 'node:url' +import type { DevframeDefinition, RemoteAssets } from 'devframe' import { defineDevframe } from 'devframe' import pkg from '../package.json' with { type: 'json' } import { setupInspect } from './node/index' @@ -8,10 +6,16 @@ import { setupInspect } from './node/index' /** Default devframe id — drives the hosted mount path `/__/`. */ const DEFAULT_ID = 'devframes_plugin_inspect' -// The Vue SPA is built (by Vite) into `dist/spa`. From both the source -// entry (`src/index.ts`, via the workspace alias) and the published -// entry (`dist/index.mjs`), `../dist/spa` resolves to `/dist/spa`. -const distDir = fileURLToPath(new URL('../dist/spa', import.meta.url)) +// The Vue SPA ships in the lockstep-versioned `@devframes/plugin-inspect-client` +// package rather than inside this (slim) node package. `resolveFrom` lets a +// locally installed copy (a workspace link in this monorepo, or an explicit +// `npm install` for air-gapped setups) be served with zero network; otherwise +// the assets stream on demand through devframe's caching CDN back-proxy. +const distDir: RemoteAssets = { + package: `${pkg.name}-client`, + version: pkg.version, + resolveFrom: import.meta.url, +} export interface InspectDevframeOptions { /** Override the devframe id (and default CLI command / mount path). */ @@ -58,7 +62,7 @@ export function createInspectDevframe(options: InspectDevframeOptions = {}): Dev cli: { command: id, port: options.port ?? 9012, - distDir: existsSync(distDir) ? distDir : undefined, + distDir, // Gate the standalone server by default; `maybeOpenBrowser` folds the // current OTP into the `--open` URL so the tab lands already trusted. // Hosted adapters (Vite/hub) supply their own auth layer and ignore this. diff --git a/plugins/inspect/src/spa/vite.config.ts b/plugins/inspect/src/spa/vite.config.ts index d83059b1..b68ba807 100644 --- a/plugins/inspect/src/spa/vite.config.ts +++ b/plugins/inspect/src/spa/vite.config.ts @@ -22,7 +22,10 @@ export default defineConfig({ // SFCs instead of esbuild pre-bundling them. optimizeDeps: { exclude: ['@antfu/design'] }, build: { - outDir: fileURLToPath(new URL('../../dist/spa', import.meta.url)), + // Emit into the sibling `@devframes/plugin-inspect-client` package, which + // ships these assets to npm; the node package stays slim and serves them + // on demand through devframe's remote-assets back-proxy. + outDir: fileURLToPath(new URL('../../client-pkg/dist', import.meta.url)), emptyOutDir: true, }, }) diff --git a/plugins/inspect/test/_utils.ts b/plugins/inspect/test/_utils.ts index 04f01cd9..62971b73 100644 --- a/plugins/inspect/test/_utils.ts +++ b/plugins/inspect/test/_utils.ts @@ -2,6 +2,7 @@ import type { DevframeHubContext } from '@devframes/hub/node' import type { DevframeNodeContext } from 'devframe' import type { StartedServer } from 'devframe/internal' import { existsSync } from 'node:fs' +import os from 'node:os' import path from 'node:path' import process from 'node:process' import { createHubContext } from '@devframes/hub/node' @@ -10,22 +11,38 @@ import { DEVFRAME_CONNECTION_META_FILENAME } from 'devframe/constants' import { createH3DevframeHost } from 'devframe/internal' import { createHostContext } from 'devframe/node' import { resolveBasePath } from 'devframe/node/hub-internals' +import { resolveStaticAssetsSource } from 'devframe/utils/remote-assets' import { mountStaticHandler } from 'devframe/utils/serve-static' import { getPort } from 'get-port-please' import { H3 } from 'h3' import { serveTestContext } from '../../../tests/helpers/serve-test-context' -const SPA_DIST = inspectDevframe.cli!.distDir! +/** + * Resolve the inspector's SPA to a local directory. Its `distDir` is a + * remote-assets declaration; in this monorepo the lockstep + * `@devframes/plugin-inspect-client` package is workspace-linked, so + * resolution short-circuits to its built `dist`. A store (rather than a + * string) means that build hasn't run. + */ +function localSpaDir(): string { + const resolved = resolveStaticAssetsSource(inspectDevframe.cli!.distDir!, path.join(os.tmpdir(), 'devframes_plugin_inspect-test')) + if (typeof resolved !== 'string') { + throw new TypeError( + '[devframes_plugin_inspect] client SPA missing — run `pnpm -C plugins/inspect run build` first.', + ) + } + return resolved +} /** * Assert the Vue SPA has been built. The dev-server and static-build - * tests mount / copy `dist/spa`; a missing build produces a loud, fixable - * failure rather than an opaque 404. + * tests mount / copy the client SPA; a missing build produces a loud, + * fixable failure rather than an opaque 404. */ export function assertSpaBuilt(): void { - if (!existsSync(path.join(SPA_DIST, 'index.html'))) { + if (!existsSync(path.join(localSpaDir(), 'index.html'))) { throw new Error( - '[devframes_plugin_inspect] dist/spa missing — run `pnpm -C plugins/inspect run build` first.', + '[devframes_plugin_inspect] client SPA missing — run `pnpm -C plugins/inspect run build` first.', ) } } @@ -51,7 +68,7 @@ interface BootOptions { * context exercises the no-hub path (empty list, thrown diagnostic). */ async function boot(options: BootOptions): Promise { - const distDir = inspectDevframe.cli!.distDir! + const distDir = localSpaDir() const basePath = resolveBasePath(inspectDevframe, 'standalone') const host = '127.0.0.1' const port = await getPort({ host, random: true }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2cdba12c..d52f51ef 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1883,6 +1883,9 @@ importers: '@devframes/hub': specifier: workspace:* version: link:../../packages/hub + '@devframes/plugin-inspect-client': + specifier: workspace:* + version: link:client-pkg '@iconify-json/ph': specifier: catalog:frontend version: 1.2.2 @@ -1941,6 +1944,8 @@ importers: specifier: catalog:deps version: 8.21.3 + plugins/inspect/client-pkg: {} + plugins/messages: dependencies: '@devframes/vite': diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0c3e3496..0832019d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -26,6 +26,7 @@ trustPolicyExclude: packages: - packages/* - plugins/* + - plugins/*/client-pkg - examples/* - storybook - docs diff --git a/turbo.json b/turbo.json index aac4ed6b..ed2d23a8 100644 --- a/turbo.json +++ b/turbo.json @@ -65,7 +65,7 @@ "@devframes/plugin-inspect#build": { "outputLogs": "new-only", "dependsOn": ["devframe#build", "@devframes/vite#build"], - "outputs": ["dist/**"] + "outputs": ["dist/**", "client-pkg/dist/**"] }, "@devframes/plugin-og#build": { "outputLogs": "new-only", From e7616391cd4b9778fdeedd90ef5cb07e46518e7c Mon Sep 17 00:00:00 2001 From: "Anthony Fu (via agent)" Date: Sun, 16 Aug 2026 00:14:09 +0000 Subject: [PATCH 2/3] refactor(plugin-inspect): name the assets package -assets, not -client MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 'client' is overloaded in devframe (devframe/client is the RPC client; each plugin's ./client export is its panel script), so a package holding prebuilt browser assets reads wrong as '…-client'. Rename @devframes/plugin-inspect-client -> @devframes/plugin-inspect-assets and the directory client-pkg -> assets-pkg, and adopt '${pkg.name}-assets' as the convention for deferred SPA-asset packages. --- knip.jsonc | 14 +++++++------- .../{client-pkg => assets-pkg}/package.json | 4 ++-- plugins/inspect/package.json | 2 +- plugins/inspect/src/index.ts | 4 ++-- plugins/inspect/src/spa/vite.config.ts | 4 ++-- plugins/inspect/test/_utils.ts | 2 +- pnpm-lock.yaml | 6 +++--- pnpm-workspace.yaml | 2 +- turbo.json | 2 +- 9 files changed, 20 insertions(+), 20 deletions(-) rename plugins/inspect/{client-pkg => assets-pkg}/package.json (89%) diff --git a/knip.jsonc b/knip.jsonc index 4fcb69aa..3309e052 100644 --- a/knip.jsonc +++ b/knip.jsonc @@ -157,18 +157,18 @@ ] }, "plugins/inspect": { - // The lockstep client-assets package is referenced only as a runtime - // string (`${pkg.name}-client` in `cli.distDir`), never imported, so - // knip can't see the dev-only workspace link that makes it resolvable - // in the monorepo. Repeat the `plugins/*` entry glob (a workspace - // config replaces, not merges, it). + // The lockstep assets package is referenced only as a runtime string + // (`${pkg.name}-assets` in `cli.distDir`), never imported, so knip + // can't see the dev-only workspace link that makes it resolvable in + // the monorepo. Repeat the `plugins/*` entry glob (a workspace config + // replaces, not merges, it). "entry": [ "src/{index,cli,vite,constants,types}.ts", "src/{client,node,rpc,inject,engine,registry}/index.ts" ], - "ignoreDependencies": ["@devframes/plugin-inspect-client"] + "ignoreDependencies": ["@devframes/plugin-inspect-assets"] }, - "plugins/inspect/client-pkg": { + "plugins/inspect/assets-pkg": { // Assets-only package: no source, just a prebuilt `dist` produced by // the sibling plugin's Vite build. "entry": [], diff --git a/plugins/inspect/client-pkg/package.json b/plugins/inspect/assets-pkg/package.json similarity index 89% rename from plugins/inspect/client-pkg/package.json rename to plugins/inspect/assets-pkg/package.json index 31ac4864..878ea280 100644 --- a/plugins/inspect/client-pkg/package.json +++ b/plugins/inspect/assets-pkg/package.json @@ -1,5 +1,5 @@ { - "name": "@devframes/plugin-inspect-client", + "name": "@devframes/plugin-inspect-assets", "type": "module", "version": "0.9.0-beta.4", "description": "Prebuilt browser assets (SPA) for @devframes/plugin-inspect, served on demand through devframe's remote-assets back-proxy.", @@ -7,7 +7,7 @@ "license": "MIT", "homepage": "https://github.com/devframes/devframe#readme", "repository": { - "directory": "plugins/inspect/client-pkg", + "directory": "plugins/inspect/assets-pkg", "type": "git", "url": "git+https://github.com/devframes/devframe.git" }, diff --git a/plugins/inspect/package.json b/plugins/inspect/package.json index edcc90a3..4948a50c 100644 --- a/plugins/inspect/package.json +++ b/plugins/inspect/package.json @@ -63,7 +63,7 @@ "devDependencies": { "@antfu/design": "catalog:frontend", "@devframes/hub": "workspace:*", - "@devframes/plugin-inspect-client": "workspace:*", + "@devframes/plugin-inspect-assets": "workspace:*", "@iconify-json/ph": "catalog:frontend", "@standard-schema/spec": "catalog:deps", "@storybook/addon-docs": "catalog:storybook", diff --git a/plugins/inspect/src/index.ts b/plugins/inspect/src/index.ts index 227a714e..886f5c5f 100644 --- a/plugins/inspect/src/index.ts +++ b/plugins/inspect/src/index.ts @@ -6,13 +6,13 @@ import { setupInspect } from './node/index' /** Default devframe id — drives the hosted mount path `/__/`. */ const DEFAULT_ID = 'devframes_plugin_inspect' -// The Vue SPA ships in the lockstep-versioned `@devframes/plugin-inspect-client` +// The Vue SPA ships in the lockstep-versioned `@devframes/plugin-inspect-assets` // package rather than inside this (slim) node package. `resolveFrom` lets a // locally installed copy (a workspace link in this monorepo, or an explicit // `npm install` for air-gapped setups) be served with zero network; otherwise // the assets stream on demand through devframe's caching CDN back-proxy. const distDir: RemoteAssets = { - package: `${pkg.name}-client`, + package: `${pkg.name}-assets`, version: pkg.version, resolveFrom: import.meta.url, } diff --git a/plugins/inspect/src/spa/vite.config.ts b/plugins/inspect/src/spa/vite.config.ts index b68ba807..e8827902 100644 --- a/plugins/inspect/src/spa/vite.config.ts +++ b/plugins/inspect/src/spa/vite.config.ts @@ -22,10 +22,10 @@ export default defineConfig({ // SFCs instead of esbuild pre-bundling them. optimizeDeps: { exclude: ['@antfu/design'] }, build: { - // Emit into the sibling `@devframes/plugin-inspect-client` package, which + // Emit into the sibling `@devframes/plugin-inspect-assets` package, which // ships these assets to npm; the node package stays slim and serves them // on demand through devframe's remote-assets back-proxy. - outDir: fileURLToPath(new URL('../../client-pkg/dist', import.meta.url)), + outDir: fileURLToPath(new URL('../../assets-pkg/dist', import.meta.url)), emptyOutDir: true, }, }) diff --git a/plugins/inspect/test/_utils.ts b/plugins/inspect/test/_utils.ts index 62971b73..6c5a0212 100644 --- a/plugins/inspect/test/_utils.ts +++ b/plugins/inspect/test/_utils.ts @@ -20,7 +20,7 @@ import { serveTestContext } from '../../../tests/helpers/serve-test-context' /** * Resolve the inspector's SPA to a local directory. Its `distDir` is a * remote-assets declaration; in this monorepo the lockstep - * `@devframes/plugin-inspect-client` package is workspace-linked, so + * `@devframes/plugin-inspect-assets` package is workspace-linked, so * resolution short-circuits to its built `dist`. A store (rather than a * string) means that build hasn't run. */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d52f51ef..c6f381c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1883,9 +1883,9 @@ importers: '@devframes/hub': specifier: workspace:* version: link:../../packages/hub - '@devframes/plugin-inspect-client': + '@devframes/plugin-inspect-assets': specifier: workspace:* - version: link:client-pkg + version: link:assets-pkg '@iconify-json/ph': specifier: catalog:frontend version: 1.2.2 @@ -1944,7 +1944,7 @@ importers: specifier: catalog:deps version: 8.21.3 - plugins/inspect/client-pkg: {} + plugins/inspect/assets-pkg: {} plugins/messages: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0832019d..92b92c6f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -26,7 +26,7 @@ trustPolicyExclude: packages: - packages/* - plugins/* - - plugins/*/client-pkg + - plugins/*/assets-pkg - examples/* - storybook - docs diff --git a/turbo.json b/turbo.json index ed2d23a8..908e87f9 100644 --- a/turbo.json +++ b/turbo.json @@ -65,7 +65,7 @@ "@devframes/plugin-inspect#build": { "outputLogs": "new-only", "dependsOn": ["devframe#build", "@devframes/vite#build"], - "outputs": ["dist/**", "client-pkg/dist/**"] + "outputs": ["dist/**", "assets-pkg/dist/**"] }, "@devframes/plugin-og#build": { "outputLogs": "new-only", From ea8640955ec422a87af87fa92464c569c80e3b8a Mon Sep 17 00:00:00 2001 From: "Anthony Fu (via agent)" Date: Sun, 16 Aug 2026 01:20:04 +0000 Subject: [PATCH 3/3] refactor(plugin-inspect): double-dash the assets package suffix Separate the '--assets' companion suffix from the plugin's own name segments: @devframes/plugin-inspect-assets -> @devframes/plugin-inspect--assets. The '--' makes the auto-derived assets package visually distinct from a plugin whose name legitimately ends in a single-dash segment. Convention is now '${pkg.name}--assets'; the directory stays plugins/*/assets-pkg. --- knip.jsonc | 4 ++-- plugins/inspect/assets-pkg/package.json | 2 +- plugins/inspect/package.json | 2 +- plugins/inspect/src/index.ts | 4 ++-- plugins/inspect/src/spa/vite.config.ts | 2 +- plugins/inspect/test/_utils.ts | 2 +- pnpm-lock.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/knip.jsonc b/knip.jsonc index 3309e052..c6d1d6f3 100644 --- a/knip.jsonc +++ b/knip.jsonc @@ -158,7 +158,7 @@ }, "plugins/inspect": { // The lockstep assets package is referenced only as a runtime string - // (`${pkg.name}-assets` in `cli.distDir`), never imported, so knip + // (`${pkg.name}--assets` in `cli.distDir`), never imported, so knip // can't see the dev-only workspace link that makes it resolvable in // the monorepo. Repeat the `plugins/*` entry glob (a workspace config // replaces, not merges, it). @@ -166,7 +166,7 @@ "src/{index,cli,vite,constants,types}.ts", "src/{client,node,rpc,inject,engine,registry}/index.ts" ], - "ignoreDependencies": ["@devframes/plugin-inspect-assets"] + "ignoreDependencies": ["@devframes/plugin-inspect--assets"] }, "plugins/inspect/assets-pkg": { // Assets-only package: no source, just a prebuilt `dist` produced by diff --git a/plugins/inspect/assets-pkg/package.json b/plugins/inspect/assets-pkg/package.json index 878ea280..e66f551a 100644 --- a/plugins/inspect/assets-pkg/package.json +++ b/plugins/inspect/assets-pkg/package.json @@ -1,5 +1,5 @@ { - "name": "@devframes/plugin-inspect-assets", + "name": "@devframes/plugin-inspect--assets", "type": "module", "version": "0.9.0-beta.4", "description": "Prebuilt browser assets (SPA) for @devframes/plugin-inspect, served on demand through devframe's remote-assets back-proxy.", diff --git a/plugins/inspect/package.json b/plugins/inspect/package.json index 4948a50c..9269a4d3 100644 --- a/plugins/inspect/package.json +++ b/plugins/inspect/package.json @@ -63,7 +63,7 @@ "devDependencies": { "@antfu/design": "catalog:frontend", "@devframes/hub": "workspace:*", - "@devframes/plugin-inspect-assets": "workspace:*", + "@devframes/plugin-inspect--assets": "workspace:*", "@iconify-json/ph": "catalog:frontend", "@standard-schema/spec": "catalog:deps", "@storybook/addon-docs": "catalog:storybook", diff --git a/plugins/inspect/src/index.ts b/plugins/inspect/src/index.ts index 886f5c5f..c8afcda1 100644 --- a/plugins/inspect/src/index.ts +++ b/plugins/inspect/src/index.ts @@ -6,13 +6,13 @@ import { setupInspect } from './node/index' /** Default devframe id — drives the hosted mount path `/__/`. */ const DEFAULT_ID = 'devframes_plugin_inspect' -// The Vue SPA ships in the lockstep-versioned `@devframes/plugin-inspect-assets` +// The Vue SPA ships in the lockstep-versioned `@devframes/plugin-inspect--assets` // package rather than inside this (slim) node package. `resolveFrom` lets a // locally installed copy (a workspace link in this monorepo, or an explicit // `npm install` for air-gapped setups) be served with zero network; otherwise // the assets stream on demand through devframe's caching CDN back-proxy. const distDir: RemoteAssets = { - package: `${pkg.name}-assets`, + package: `${pkg.name}--assets`, version: pkg.version, resolveFrom: import.meta.url, } diff --git a/plugins/inspect/src/spa/vite.config.ts b/plugins/inspect/src/spa/vite.config.ts index e8827902..061f32ca 100644 --- a/plugins/inspect/src/spa/vite.config.ts +++ b/plugins/inspect/src/spa/vite.config.ts @@ -22,7 +22,7 @@ export default defineConfig({ // SFCs instead of esbuild pre-bundling them. optimizeDeps: { exclude: ['@antfu/design'] }, build: { - // Emit into the sibling `@devframes/plugin-inspect-assets` package, which + // Emit into the sibling `@devframes/plugin-inspect--assets` package, which // ships these assets to npm; the node package stays slim and serves them // on demand through devframe's remote-assets back-proxy. outDir: fileURLToPath(new URL('../../assets-pkg/dist', import.meta.url)), diff --git a/plugins/inspect/test/_utils.ts b/plugins/inspect/test/_utils.ts index 6c5a0212..db5cbd3d 100644 --- a/plugins/inspect/test/_utils.ts +++ b/plugins/inspect/test/_utils.ts @@ -20,7 +20,7 @@ import { serveTestContext } from '../../../tests/helpers/serve-test-context' /** * Resolve the inspector's SPA to a local directory. Its `distDir` is a * remote-assets declaration; in this monorepo the lockstep - * `@devframes/plugin-inspect-assets` package is workspace-linked, so + * `@devframes/plugin-inspect--assets` package is workspace-linked, so * resolution short-circuits to its built `dist`. A store (rather than a * string) means that build hasn't run. */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c6f381c2..0d4e6586 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1883,7 +1883,7 @@ importers: '@devframes/hub': specifier: workspace:* version: link:../../packages/hub - '@devframes/plugin-inspect-assets': + '@devframes/plugin-inspect--assets': specifier: workspace:* version: link:assets-pkg '@iconify-json/ph':