diff --git a/lib/core/src/server/build-dev.ts b/lib/core/src/server/build-dev.ts index 21271fc5178f..684a0d1f1ba1 100644 --- a/lib/core/src/server/build-dev.ts +++ b/lib/core/src/server/build-dev.ts @@ -25,11 +25,9 @@ const cache = Cache({ }); const writeStats = async (name: string, stats: Stats) => { - await fs.writeFile( - resolvePathInStorybookCache(`public/${name}-stats.json`), - JSON.stringify(stats.toJson(), null, 2), - 'utf8' - ); + const filePath = resolvePathInStorybookCache(`public/${name}-stats.json`); + await fs.writeFile(filePath, JSON.stringify(stats.toJson(), null, 2), 'utf8'); + return filePath; }; const getFreePort = (port: number) => @@ -222,12 +220,13 @@ function outputStartupInformation(options: { async function outputStats(previewStats: Stats, managerStats: Stats) { if (previewStats) { - await writeStats('preview', previewStats); + const filePath = await writeStats('preview', previewStats); + logger.info(`=> preview stats written to ${chalk.cyan(filePath)}`); + } + if (managerStats) { + const filePath = await writeStats('manager', managerStats); + logger.info(`=> manager stats written to ${chalk.cyan(filePath)}`); } - await writeStats('manager', managerStats); - logger.info( - `stats written to => ${chalk.cyan(resolvePathInStorybookCache('public/[name].json'))}` - ); } export async function buildDevStandalone( diff --git a/lib/core/src/server/dev-server.ts b/lib/core/src/server/dev-server.ts index 267bfebba3e9..fce777198134 100644 --- a/lib/core/src/server/dev-server.ts +++ b/lib/core/src/server/dev-server.ts @@ -174,7 +174,7 @@ const useProgressReporting = async ( const progress = { value, message: message.charAt(0).toUpperCase() + message.slice(1) }; if (message === 'building') { // arg3 undefined in webpack5 - const counts = arg3 && arg3.match(/(\d+)\/(\d+)/) || []; + const counts = (arg3 && arg3.match(/(\d+)\/(\d+)/)) || []; const complete = parseInt(counts[1], 10); const total = parseInt(counts[2], 10); if (!Number.isNaN(complete) && !Number.isNaN(total)) { @@ -240,7 +240,7 @@ const startManager = async ({ logConfig('Manager webpack config', managerConfig); } - if (options.cache) { + if (options.cache && !options.smokeTest) { if (options.managerCache) { const [useCache, hasOutput] = await Promise.all([ // must run even if outputDir doesn't exist, otherwise the 2nd run won't use cache @@ -258,7 +258,7 @@ const startManager = async ({ } if (!managerConfig) { - return { managerStats: {}, managerTotalTime: [0, 0] } as ManagerResult; + return { managerStats: null, managerTotalTime: [0, 0] } as ManagerResult; } const compiler = webpack(managerConfig); @@ -311,7 +311,7 @@ const startPreview = async ({ outputDir, }: any): Promise => { if (options.ignorePreview) { - return { previewStats: {}, previewTotalTime: [0, 0] } as PreviewResult; + return { previewStats: null, previewTotalTime: [0, 0] } as PreviewResult; } const previewConfig = await loadConfig({ diff --git a/lib/core/src/server/utils/prebuilt-manager.ts b/lib/core/src/server/utils/prebuilt-manager.ts index 2e527b2ea831..860a7eefad3c 100644 --- a/lib/core/src/server/utils/prebuilt-manager.ts +++ b/lib/core/src/server/utils/prebuilt-manager.ts @@ -22,9 +22,9 @@ export const getPrebuiltDir = async ({ options, }: { configDir: string; - options: { managerCache?: boolean }; + options: { managerCache?: boolean; smokeTest?: boolean }; }): Promise => { - if (options.managerCache === false) return false; + if (options.managerCache === false || options.smokeTest) return false; const prebuiltDir = path.join(__dirname, '../../../prebuilt'); const hasPrebuiltManager = await pathExists(path.join(prebuiltDir, 'index.html'));