fix(storybook): check storybook is installed and not on v7 already (#16402)

This commit is contained in:
Katerina Skroumpelou 2023-04-19 15:30:41 +03:00 committed by GitHub
parent 4446bf749a
commit 2e979628b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 14 deletions

View File

@ -3,8 +3,8 @@ import * as build from '@storybook/core-server';
import { CLIOptions } from '@storybook/types'; // TODO(katerina): Remove when Storybook 7 import { CLIOptions } from '@storybook/types'; // TODO(katerina): Remove when Storybook 7
import 'dotenv/config'; import 'dotenv/config';
import { import {
isStorybookV7,
storybookConfigExistsCheck, storybookConfigExistsCheck,
storybookMajorVersion,
} from '../../utils/utilities'; } from '../../utils/utilities';
import { CommonNxStorybookConfig } from '../../utils/models'; import { CommonNxStorybookConfig } from '../../utils/models';
import { import {
@ -18,7 +18,7 @@ export default async function buildStorybookExecutor(
context: ExecutorContext context: ExecutorContext
) { ) {
storybookConfigExistsCheck(options.configDir, context.projectName); storybookConfigExistsCheck(options.configDir, context.projectName);
const storybook7 = isStorybookV7(); const storybook7 = storybookMajorVersion() === 7;
if (storybook7) { if (storybook7) {
const buildOptions: CLIOptions = options; const buildOptions: CLIOptions = options;
logger.info(`NX Storybook builder starting ...`); logger.info(`NX Storybook builder starting ...`);

View File

@ -2,8 +2,8 @@ import { ExecutorContext } from '@nx/devkit';
import * as build from '@storybook/core-server'; import * as build from '@storybook/core-server';
import 'dotenv/config'; import 'dotenv/config';
import { import {
isStorybookV7,
storybookConfigExistsCheck, storybookConfigExistsCheck,
storybookMajorVersion,
} from '../../utils/utilities'; } from '../../utils/utilities';
import { import {
getStorybookFrameworkPath, getStorybookFrameworkPath,
@ -20,7 +20,7 @@ export default async function* storybookExecutor(
success: boolean; success: boolean;
info?: { port: number; baseUrl?: string }; info?: { port: number; baseUrl?: string };
}> { }> {
const storybook7 = isStorybookV7(); const storybook7 = storybookMajorVersion() === 7;
storybookConfigExistsCheck(options.configDir, context.projectName); storybookConfigExistsCheck(options.configDir, context.projectName);
if (storybook7) { if (storybook7) {
const buildOptions: CLIOptions = options; const buildOptions: CLIOptions = options;

View File

@ -1,8 +1,14 @@
import { Tree } from '@nx/devkit'; import { Tree } from '@nx/devkit';
import { output } from 'nx/src/utils/output'; import { output } from 'nx/src/utils/output';
import migrate7Generator from '../../generators/migrate-7/migrate-7'; import migrate7Generator from '../../generators/migrate-7/migrate-7';
import { storybookMajorVersion } from '../../utils/utilities';
export default async function changeStorybookTargets(tree: Tree) { export default async function changeStorybookTargets(tree: Tree) {
const storybookVersion = storybookMajorVersion();
if (!storybookVersion || storybookVersion === 7) {
return;
}
output.log({ output.log({
title: 'Migrating Storybook to v7', title: 'Migrating Storybook to v7',
bodyLines: [ bodyLines: [

View File

@ -4,7 +4,7 @@ import { storybookVersion } from './versions';
import { statSync } from 'fs'; import { statSync } from 'fs';
import { findNodes } from '@nx/js'; import { findNodes } from '@nx/js';
import ts = require('typescript'); import ts = require('typescript');
import { gte, lt, major } from 'semver'; import { major } from 'semver';
import { join } from 'path'; import { join } from 'path';
export const Constants = { export const Constants = {
@ -51,15 +51,7 @@ type Framework = {
uiFramework: Constants['uiFrameworks'][keyof Constants['uiFrameworks']]; uiFramework: Constants['uiFrameworks'][keyof Constants['uiFrameworks']];
}; };
export function isStorybookV7() { export function storybookMajorVersion(): number | undefined {
const storybookPackageVersion = require(join(
'@storybook/core-server',
'package.json'
)).version;
return gte(storybookPackageVersion, '7.0.0-alpha.0');
}
export function storybookMajorVersion() {
try { try {
const storybookPackageVersion = require(join( const storybookPackageVersion = require(join(
'@storybook/core-server', '@storybook/core-server',