diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json index 556cf6c23ecb..921fba9f5c72 100644 --- a/code/builders/builder-vite/package.json +++ b/code/builders/builder-vite/package.json @@ -46,6 +46,7 @@ "@storybook/channels": "workspace:*", "@storybook/client-logger": "workspace:*", "@storybook/core-common": "workspace:*", + "@storybook/core-events": "workspace:*", "@storybook/csf-plugin": "workspace:*", "@storybook/node-logger": "workspace:*", "@storybook/preview": "workspace:*", diff --git a/code/builders/builder-vite/src/index.ts b/code/builders/builder-vite/src/index.ts index 9cdac7233d67..3c0b7591d2cf 100644 --- a/code/builders/builder-vite/src/index.ts +++ b/code/builders/builder-vite/src/index.ts @@ -5,6 +5,7 @@ import type { RequestHandler } from 'express'; import type { ViteDevServer } from 'vite'; import express from 'express'; import { dirname, join, parse } from 'path'; +import { NoStatsForViteDevError } from '@storybook/core-events/server-errors'; import type { Options } from '@storybook/types'; import { transformIframeHtml } from './transform-iframe-html'; import { createViteServer } from './vite-server'; @@ -68,7 +69,11 @@ export const start: ViteBuilder['start'] = async ({ return { bail, - stats: { toJson: () => null }, + stats: { + toJson: () => { + throw new NoStatsForViteDevError(); + }, + }, totalTime: process.hrtime(startTime), }; }; diff --git a/code/lib/core-events/src/errors/server-errors.ts b/code/lib/core-events/src/errors/server-errors.ts index a9a9e758d70e..c8eccef6eb2a 100644 --- a/code/lib/core-events/src/errors/server-errors.ts +++ b/code/lib/core-events/src/errors/server-errors.ts @@ -576,3 +576,17 @@ export class UpgradeStorybookUnknownCurrentVersionError extends StorybookError { `; } } + +export class NoStatsForViteDevError extends StorybookError { + readonly category = Category.BUILDER_VITE; + + readonly code = 1; + + template() { + return dedent` + Unable to write preview stats as the Vite builder does not support stats in dev mode. + + Please remove the \`--stats-json\` flag when running in dev mode. + `; + } +} diff --git a/code/yarn.lock b/code/yarn.lock index 07c7d2bd6b0e..99e1344e0955 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -5334,6 +5334,7 @@ __metadata: "@storybook/channels": "workspace:*" "@storybook/client-logger": "workspace:*" "@storybook/core-common": "workspace:*" + "@storybook/core-events": "workspace:*" "@storybook/csf-plugin": "workspace:*" "@storybook/node-logger": "workspace:*" "@storybook/preview": "workspace:*"