fix(react): ensure @vitejs/plugin-react is installed for storybook (#27463)

This commit is contained in:
Colum Ferry 2024-08-15 22:02:42 +01:00 committed by GitHub
parent f7eab14f6b
commit ce2dff303a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 2 deletions

View File

@ -1,14 +1,17 @@
import { StorybookConfigureSchema } from './schema';
import storiesGenerator from '../stories/stories';
import {
addDependenciesToPackageJson,
ensurePackage,
formatFiles,
type GeneratorCallback,
joinPathFragments,
readNxJson,
readProjectConfiguration,
runTasksInSerial,
Tree,
} from '@nx/devkit';
import { nxVersion } from '../../utils/versions';
import { nxVersion, reactViteVersion } from '../../utils/versions';
async function generateStories(host: Tree, schema: StorybookConfigureSchema) {
// TODO(katerina): Nx 19 -> remove Cypress
@ -48,6 +51,7 @@ export async function storybookConfigurationGeneratorInternal(
host: Tree,
schema: StorybookConfigureSchema
) {
const tasks: GeneratorCallback[] = [];
const nxJson = readNxJson(host);
const addPluginDefault =
process.env.NX_ADD_PLUGINS !== 'false' &&
@ -69,6 +73,16 @@ export async function storybookConfigurationGeneratorInternal(
uiFramework = '@storybook/react-webpack5';
}
if (uiFramework === '@storybook/react-vite') {
tasks.push(
addDependenciesToPackageJson(
host,
{},
{ '@vitejs/plugin-react': reactViteVersion }
)
);
}
const installTask = await configurationGenerator(host, {
project: schema.project,
configureCypress: schema.configureCypress,
@ -83,13 +97,15 @@ export async function storybookConfigurationGeneratorInternal(
addPlugin: schema.addPlugin,
});
tasks.push(installTask);
if (schema.generateStories) {
await generateStories(host, schema);
}
await formatFiles(host);
return installTask;
return runTasksInSerial(...tasks);
}
export default storybookConfigurationGenerator;

View File

@ -11,6 +11,7 @@ export const babelLoaderVersion = '^9.1.2';
export const typesReactVersion = '18.3.1';
export const typesReactDomVersion = '18.3.0';
export const typesReactIsVersion = '18.3.0';
export const reactViteVersion = '^4.2.0';
export const typesNodeVersion = '18.16.9';