From 91114ddcce107111491e443d44aa96b6da09c707 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Wed, 19 Jul 2023 09:41:56 +0200 Subject: [PATCH] Merge pull request #23489 from storybookjs/valentin/make-enable-prod-mode-in-angular-optional Angular: Make enableProdMode optional (cherry picked from commit 10e38b5530f41cc12a7c00c4664fc0066a0e8893) --- .../frameworks/angular/src/builders/build-storybook/index.ts | 3 +++ .../angular/src/builders/build-storybook/schema.json | 5 +++++ .../frameworks/angular/src/builders/start-storybook/index.ts | 3 +++ .../angular/src/builders/start-storybook/schema.json | 5 +++++ .../angular/src/builders/utils/standalone-options.ts | 1 + code/frameworks/angular/src/preset.ts | 3 ++- 6 files changed, 19 insertions(+), 1 deletion(-) diff --git a/code/frameworks/angular/src/builders/build-storybook/index.ts b/code/frameworks/angular/src/builders/build-storybook/index.ts index 2916c842628e..aef361ac0790 100644 --- a/code/frameworks/angular/src/builders/build-storybook/index.ts +++ b/code/frameworks/angular/src/builders/build-storybook/index.ts @@ -35,6 +35,7 @@ export type StorybookBuilderOptions = JsonObject & { docs: boolean; compodoc: boolean; compodocArgs: string[]; + enableProdMode?: boolean; styles?: StyleElement[]; stylePreprocessorOptions?: StylePreprocessorOptions; assets?: AssetPattern[]; @@ -78,6 +79,7 @@ const commandBuilder: BuilderHandlerFn = ( loglevel, outputDir, quiet, + enableProdMode = true, webpackStatsJson, disableTelemetry, assets, @@ -90,6 +92,7 @@ const commandBuilder: BuilderHandlerFn = ( loglevel, outputDir, quiet, + enableProdMode, disableTelemetry, angularBrowserTarget: browserTarget, angularBuilderContext: context, diff --git a/code/frameworks/angular/src/builders/build-storybook/schema.json b/code/frameworks/angular/src/builders/build-storybook/schema.json index eaae4d1cf8db..b0c63c455076 100644 --- a/code/frameworks/angular/src/builders/build-storybook/schema.json +++ b/code/frameworks/angular/src/builders/build-storybook/schema.json @@ -29,6 +29,11 @@ "description": "Controls level of logging during build. Can be one of: [silly, verbose, info (default), warn, error, silent].", "pattern": "(silly|verbose|info|warn|silent)" }, + "enableProdMode": { + "type": "boolean", + "description": "Disable Angular's development mode, which turns off assertions and other checks within the framework.", + "default": true + }, "quiet": { "type": "boolean", "description": "Suppress verbose build output.", diff --git a/code/frameworks/angular/src/builders/start-storybook/index.ts b/code/frameworks/angular/src/builders/start-storybook/index.ts index 642953dc4366..fa78f8b45d8e 100644 --- a/code/frameworks/angular/src/builders/start-storybook/index.ts +++ b/code/frameworks/angular/src/builders/start-storybook/index.ts @@ -32,6 +32,7 @@ export type StorybookBuilderOptions = JsonObject & { tsConfig?: string; compodoc: boolean; compodocArgs: string[]; + enableProdMode?: boolean; styles?: StyleElement[]; stylePreprocessorOptions?: StylePreprocessorOptions; assets?: AssetPattern[]; @@ -93,6 +94,7 @@ const commandBuilder: BuilderHandlerFn = (options, cont https, port, quiet, + enableProdMode = false, smokeTest, sslCa, sslCert, @@ -112,6 +114,7 @@ const commandBuilder: BuilderHandlerFn = (options, cont https, port, quiet, + enableProdMode, smokeTest, sslCa, sslCert, diff --git a/code/frameworks/angular/src/builders/start-storybook/schema.json b/code/frameworks/angular/src/builders/start-storybook/schema.json index d10d07d95d5d..3bd70064ccb9 100644 --- a/code/frameworks/angular/src/builders/start-storybook/schema.json +++ b/code/frameworks/angular/src/builders/start-storybook/schema.json @@ -66,6 +66,11 @@ "description": "Suppress verbose build output.", "default": false }, + "enableProdMode": { + "type": "boolean", + "description": "Disable Angular's development mode, which turns off assertions and other checks within the framework.", + "default": false + }, "docs": { "type": "boolean", "description": "Starts Storybook in documentation mode. Learn more about it : https://storybook.js.org/docs/react/writing-docs/build-documentation#preview-storybooks-documentation.", diff --git a/code/frameworks/angular/src/builders/utils/standalone-options.ts b/code/frameworks/angular/src/builders/utils/standalone-options.ts index 6c9211b98aae..b77e82b372ba 100644 --- a/code/frameworks/angular/src/builders/utils/standalone-options.ts +++ b/code/frameworks/angular/src/builders/utils/standalone-options.ts @@ -10,6 +10,7 @@ export type StandaloneOptions = CLIOptions & LoadOptions & BuilderOptions & { mode?: 'static' | 'dev'; + enableProdMode: boolean; angularBrowserTarget?: string | null; angularBuilderOptions?: Record & { styles?: StyleElement[]; diff --git a/code/frameworks/angular/src/preset.ts b/code/frameworks/angular/src/preset.ts index 76274592ddbc..6e359b452138 100644 --- a/code/frameworks/angular/src/preset.ts +++ b/code/frameworks/angular/src/preset.ts @@ -1,6 +1,7 @@ import { dirname, join } from 'path'; import { PresetProperty } from '@storybook/types'; import { StorybookConfig } from './types'; +import { StandaloneOptions } from './builders/utils/standalone-options'; const wrapForPnP = (input: string) => dirname(require.resolve(join(input, 'package.json'))); @@ -16,7 +17,7 @@ export const previewAnnotations: StorybookConfig['previewAnnotations'] = ( ) => { const annotations = [...entries, require.resolve('./client/config')]; - if (options.configType === 'PRODUCTION') { + if ((options as any as StandaloneOptions).enableProdMode) { annotations.unshift(require.resolve('./client/preview-prod')); }