diff --git a/code/lib/core-common/src/utils/get-renderer-name.ts b/code/lib/core-common/src/utils/get-renderer-name.ts index 375190affb60..35131f5e0090 100644 --- a/code/lib/core-common/src/utils/get-renderer-name.ts +++ b/code/lib/core-common/src/utils/get-renderer-name.ts @@ -1,5 +1,5 @@ -import { dedent } from 'ts-dedent'; import type { Options } from '@storybook/types'; +import { getFrameworkName } from './get-framework-name'; /** * Render is set as a string on core. It must be set by the framework @@ -8,11 +8,9 @@ export async function getRendererName(options: Options) { const { renderer } = await options.presets.apply('core', {}, options); if (!renderer) { - throw new Error(dedent` - You must specify a framework in '.storybook/main.js' config. - - https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory - `); + // At the moment some frameworks (Angular/Ember) do not define a renderer, but themselves + // serve the purpose (in particular exporting the symbols needed by entrypoints) + return getFrameworkName(options); } return renderer;