storybook/docs/api/main-config-core.md
Kyle Gach 1d3262ee62 Address comments:
- Add `babelDefault` and `managerHead` pages
- Fix broken links
- Clarify when some properties are primarily used by addon authors
- Document simplified options for `babel`, `babelDefault`, `viteFinal`, and `webpackFinal`
- Add description for `core.channelOptions`
- Remove the `previewMainTemplate` page
- Document possible shortcomings of some `stories` configurations
- Document limitations of some `typescript` options
2023-05-23 14:15:53 -06:00

3.6 KiB

title
core

Parent: main.js|ts configuration

Type:

{
  builder?: string | { name: string; options?: BuilderOptions };
  channelOptions?: ChannelOptions;
  crossOriginIsolated?: boolean;
  disableProjectJson?: boolean;
  disableTelemetry?: boolean;
  disableWebpackDefaults?: boolean;
  enableCrashReports?: boolean;
  renderer?: RendererName;
}

Configures Storybook's internal features.

builder

Type:

| '@storybook/builder-vite' | '@storybook/builder-webpack5'
| {
    name: '@storybook/builder-vite' | '@storybook/builder-webpack5';
    options?: BuilderOptions;
  }

Configures Storybook's builder, Vite or Webpack.

<CodeSnippets paths={[ 'common/main-config-core-builder.js.mdx', 'common/main-config-core-builder.ts.mdx', ]} />

channelOptions

Type: ChannelOptions

{
  allowClass: boolean;
  allowDate: boolean;
  allowFunction: boolean;
  allowRegExp: boolean;
  allowSymbol: boolean;
  allowUndefined: boolean;
  lazyEval: boolean;
  maxDepth: number;
  space: number | undefined;
}

Configures the channel used by Storybook to communicate between the manager and preview.

Only two properties are likely to be used:

channelOptions.allowFunction

Type: boolean

Default: false

Enables serializing functions across the channel, which can be a security risk.

channelOptions.maxDepth

Type: number

Default: 3

The maximum depth of nested objects to serialize across the channel. Larger values will be slower.

crossOriginIsolated

Type: boolean

Enable CORS headings to run document in a "secure context". See SharedArrayBuffer security requirements

This enables these headers in development-mode:

  • Cross-Origin-Opener-Policy: same-origin
  • Cross-Origin-Embedder-Policy: require-corp

<CodeSnippets paths={[ 'common/main-config-core-cross-origin-isolated.js.mdx', 'common/main-config-core-cross-origin-isolated.ts.mdx', ]} />

disableProjectJson

Type: boolean

Disables the generation of project.json, a file containing Storybook metadata

<CodeSnippets paths={[ 'common/main-config-core-disable-project-json.js.mdx', 'common/main-config-core-disable-project-json.ts.mdx', ]} />

disableTelemetry

Type: boolean

Disables Storybook's telemetry collection.

<CodeSnippets paths={[ 'common/main-config-core-disable-telemetry.js.mdx', 'common/main-config-core-disable-telemetry.ts.mdx', ]} />

disableWebpackDefaults

Type: boolean

Disables Storybook's default Webpack configuration.

<CodeSnippets paths={[ 'common/main-config-core-disable-webpack-defaults.js.mdx', 'common/main-config-core-disable-webpack-defaults.ts.mdx', ]} />

enableCrashReports

Type: boolean

Enable crash reports to be sent to Storybook telemetry.

<CodeSnippets paths={[ 'common/main-config-core-enable-crash-reports.js.mdx', 'common/main-config-core-enable-crash-reports.ts.mdx', ]} />

renderer

Type: RendererName