Skip to content

Commit 2a888ad

Browse files
authored
fix(storybook): install core-js for non-vite libs (#18115)
1 parent b61373a commit 2a888ad

File tree

4 files changed

+25
-9
lines changed

4 files changed

+25
-9
lines changed

packages/react/src/generators/storybook-configuration/configuration.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,16 @@ export async function storybookConfigurationGenerator(
4141
typeof import('@nx/storybook')
4242
>('@nx/storybook', nxVersion);
4343

44-
let bundler = 'vite';
44+
let uiFramework = '@storybook/react-vite';
4545
const projectConfig = readProjectConfiguration(host, schema.name);
4646

4747
if (
48-
projectConfig.projectType === 'application' &&
49-
(projectConfig.targets['build']?.executor === '@nx/webpack:webpack' ||
50-
projectConfig.targets['build']?.executor === '@nrwl/webpack:webpack')
48+
projectConfig.targets['build']?.executor === '@nx/webpack:webpack' ||
49+
projectConfig.targets['build']?.executor === '@nrwl/webpack:webpack' ||
50+
projectConfig.targets['build']?.executor === '@nx/rollup:rollup' ||
51+
projectConfig.targets['build']?.executor === '@nrwl/rollup:rollup'
5152
) {
52-
bundler = 'webpack';
53+
uiFramework = '@storybook/react-webpack5';
5354
}
5455

5556
const installTask = await configurationGenerator(host, {
@@ -61,10 +62,7 @@ export async function storybookConfigurationGenerator(
6162
tsConfiguration: schema.tsConfiguration ?? true, // default is true
6263
interactionTests: schema.interactionTests ?? true, // default is true
6364
configureStaticServe: schema.configureStaticServe,
64-
uiFramework:
65-
bundler === 'vite'
66-
? '@storybook/react-vite'
67-
: '@storybook/react-webpack5',
65+
uiFramework: uiFramework as any, // cannot import UiFramework7 type dynamically
6866
skipFormat: true,
6967
});
7068

packages/storybook/src/generators/configuration/configuration.spec.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,10 @@ describe('@nx/storybook:configuration for Storybook v7', () => {
166166
expect(
167167
tree.read('libs/test-ui-lib2/tsconfig.storybook.json', 'utf-8')
168168
).toMatchSnapshot();
169+
170+
expect(
171+
readJson(tree, 'package.json').devDependencies['core-js']
172+
).toBeTruthy();
169173
});
170174

171175
it('should generate TS config for project if tsConfiguration true', async () => {
@@ -197,6 +201,10 @@ describe('@nx/storybook:configuration for Storybook v7', () => {
197201
readJson(tree, 'package.json').devDependencies['@storybook/test-runner']
198202
).toBeTruthy();
199203

204+
expect(
205+
readJson(tree, 'package.json').devDependencies['core-js']
206+
).toBeTruthy();
207+
200208
expect(
201209
readJson(tree, 'package.json').devDependencies[
202210
'@storybook/testing-library'

packages/storybook/src/generators/configuration/configuration.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import {
3535
storybookMajorVersion,
3636
} from '../../utils/utilities';
3737
import {
38+
coreJsVersion,
3839
nxVersion,
3940
storybookJestVersion,
4041
storybookTestingLibraryVersion,
@@ -191,6 +192,13 @@ export async function configurationGenerator(
191192
devDeps['@nx/web'] = nxVersion;
192193
}
193194

195+
if (
196+
projectType !== 'application' &&
197+
schema.uiFramework === '@storybook/react-webpack5'
198+
) {
199+
devDeps['core-js'] = coreJsVersion;
200+
}
201+
194202
tasks.push(addDependenciesToPackageJson(tree, {}, devDeps));
195203

196204
if (!schema.skipFormat) {

packages/storybook/src/utils/versions.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,5 @@ export const tsNodeVersion = '10.9.1';
1010
export const storybookVersion = '^7.0.24';
1111
export const reactVersion = '^18.2.0';
1212
export const viteVersion = '~4.3.9';
13+
14+
export const coreJsVersion = '^3.6.5';

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy