@@ -7,11 +7,24 @@ import {
77 type Configuration ,
88 type WebpackPluginInstance ,
99} from 'webpack' ;
10- import { logger } from '@storybook/node-logger' ;
1110import { normalizeStories } from '@storybook/core/common' ;
1211import withModuleFederation from '../utils/with-module-federation.js' ;
1312import { correctImportPath } from '../utils/correctImportPath.js' ;
1413
14+ // TODO: Only reserve `storybook/internal/node-logger` in next major release.
15+ // Dynamic import for logger to support multiple Storybook versions
16+ async function getLogger ( ) {
17+ try {
18+ // Try high version first (since Storybook 9)
19+ const mod = await import ( 'storybook/internal/node-logger' ) ;
20+ return mod . logger ;
21+ } catch {
22+ // Fallback to low version
23+ const mod = await import ( '@storybook/node-logger' ) ;
24+ return mod . logger ;
25+ }
26+ }
27+
1528import type { moduleFederationPlugin } from '@module-federation/sdk' ;
1629import type { ModuleFederationConfig } from '@nx/webpack' ;
1730
@@ -38,6 +51,9 @@ export const webpack = async (
3851 const { moduleFederationConfig, presets, nxModuleFederationConfig } = options ;
3952 const context = webpackContext || process . cwd ( ) ;
4053
54+ // Get logger instance (supports multiple Storybook versions)
55+ const logger = await getLogger ( ) ;
56+
4157 // Detect webpack version. More about storybook webpack config https://storybook.js.org/docs/react/addons/writing-presets#webpack
4258 const webpackVersion = await presets . apply ( 'webpackVersion' ) ;
4359 logger . info ( `=> [MF] Webpack ${ webpackVersion } version detected` ) ;
0 commit comments