From ada6434ebad152ec0036fc98443ee2e5d43ba303 Mon Sep 17 00:00:00 2001 From: Taylor Date: Mon, 14 Oct 2024 10:51:05 +1300 Subject: [PATCH 1/5] feat: storybook v8 support Also adds new parameter to use the new test build mode in Storybook v8 --- ...-plugin-storybook-v8_2024-10-13-21-52.json | 10 +++++++ .../heft-storybook-plugin/heft-plugin.json | 5 ++++ .../src/StorybookPlugin.ts | 27 ++++++++++++++++++- .../src/schemas/storybook.schema.json | 2 +- 4 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 common/changes/@rushstack/heft-storybook-plugin/heft-storybook-plugin-storybook-v8_2024-10-13-21-52.json diff --git a/common/changes/@rushstack/heft-storybook-plugin/heft-storybook-plugin-storybook-v8_2024-10-13-21-52.json b/common/changes/@rushstack/heft-storybook-plugin/heft-storybook-plugin-storybook-v8_2024-10-13-21-52.json new file mode 100644 index 00000000000..b5bbef7de0e --- /dev/null +++ b/common/changes/@rushstack/heft-storybook-plugin/heft-storybook-plugin-storybook-v8_2024-10-13-21-52.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/heft-storybook-plugin", + "comment": "Add support for Storybook v8", + "type": "minor" + } + ], + "packageName": "@rushstack/heft-storybook-plugin" +} \ No newline at end of file diff --git a/heft-plugins/heft-storybook-plugin/heft-plugin.json b/heft-plugins/heft-storybook-plugin/heft-plugin.json index 7421e93abe5..2b552d232db 100644 --- a/heft-plugins/heft-storybook-plugin/heft-plugin.json +++ b/heft-plugins/heft-storybook-plugin/heft-plugin.json @@ -13,6 +13,11 @@ "longName": "--storybook", "description": "(EXPERIMENTAL) Used by the \"@rushstack/heft-storybook-plugin\" package to launch Storybook.", "parameterKind": "flag" + }, + { + "longName": "--storybook-test", + "description": "Executes a stripped down build-storybook for testing purposes.", + "parameterKind": "flag" } ] } diff --git a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts index 9a50bd122e5..de34b00cafe 100644 --- a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts +++ b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts @@ -57,7 +57,8 @@ enum StorybookBuildMode { */ enum StorybookCliVersion { STORYBOOK7 = 'storybook7', - STORYBOOK6 = 'storybook6' + STORYBOOK6 = 'storybook6', + STORYBOOK8 = 'storybook8' } /** @@ -179,6 +180,13 @@ const DEFAULT_STORYBOOK_CLI_CONFIG: Record { private _logger!: IScopedLogger; private _isServeMode: boolean = false; + private _isTestMode: boolean = false; /** * Generate typings for Sass files before TypeScript compilation. @@ -198,6 +207,8 @@ export default class StorybookPlugin implements IHeftTaskPlugin Promise = async () => { @@ -267,6 +282,13 @@ export default class StorybookPlugin implements IHeftTaskPlugin Date: Tue, 22 Oct 2024 10:48:58 +1300 Subject: [PATCH 2/5] code review feedback --- .../src/StorybookPlugin.ts | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts index de34b00cafe..524cb617c1d 100644 --- a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts +++ b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts @@ -56,8 +56,8 @@ enum StorybookBuildMode { * Storybook CLI versions */ enum StorybookCliVersion { - STORYBOOK7 = 'storybook7', STORYBOOK6 = 'storybook6', + STORYBOOK7 = 'storybook7', STORYBOOK8 = 'storybook8' } @@ -195,6 +195,7 @@ export default class StorybookPlugin implements IHeftTaskPlugin Date: Wed, 23 Oct 2024 12:54:26 -0700 Subject: [PATCH 3/5] fixup! code review feedback --- .../heft-storybook-plugin/src/StorybookPlugin.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts index 524cb617c1d..0befdc1e48e 100644 --- a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts +++ b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts @@ -190,12 +190,13 @@ const DEFAULT_STORYBOOK_CLI_CONFIG: Record { private _logger!: IScopedLogger; private _isServeMode: boolean = false; private _isTestMode: boolean = false; - private _storybookTestFlagName: '--storybook-test' = '--storybook-test'; /** * Generate typings for Sass files before TypeScript compilation. @@ -208,9 +209,8 @@ export default class StorybookPlugin implements IHeftTaskPlugin Date: Thu, 24 Oct 2024 11:18:41 +1300 Subject: [PATCH 4/5] fix storybook v8 printing addon compatibility error --- .../heft-storybook-plugin/src/StorybookPlugin.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts index 0befdc1e48e..438050e2001 100644 --- a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts +++ b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts @@ -523,6 +523,17 @@ export default class StorybookPlugin implements IHeftTaskPlugin Date: Thu, 24 Oct 2024 13:42:32 +1300 Subject: [PATCH 5/5] only supply npm_config_user_agent env var to Storybook 8 --- .../src/StorybookPlugin.ts | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts index 438050e2001..9d396767630 100644 --- a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts +++ b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts @@ -276,8 +276,7 @@ export default class StorybookPlugin implements IHeftTaskPlugin { const { storykitPackageName, staticBuildOutputFolder } = options; - const storybookCliVersion: `${StorybookCliVersion}` = - options.cliCallingConvention ?? DEFAULT_STORYBOOK_VERSION; + const storybookCliVersion: `${StorybookCliVersion}` = this._getStorybookVersion(options); const storyBookCliConfig: IStorybookCliCallingConfig = DEFAULT_STORYBOOK_CLI_CONFIG[storybookCliVersion]; const cliPackageName: string = options.cliPackageName ?? storyBookCliConfig.packageName; const buildMode: StorybookBuildMode = taskSession.parameters.watch @@ -407,6 +406,7 @@ export default class StorybookPlugin implements IHeftTaskPlugin