diff --git a/lib/cli/src/initiate.ts b/lib/cli/src/initiate.ts index edaf6127e75..61d2daf5eec 100644 --- a/lib/cli/src/initiate.ts +++ b/lib/cli/src/initiate.ts @@ -36,6 +36,7 @@ import preactGenerator from './generators/PREACT'; import svelteGenerator from './generators/SVELTE'; import raxGenerator from './generators/RAX'; import { warn } from './warn'; +import { JsPackageManagerFactory } from './js-package-manager/JsPackageManagerFactory'; const logger = console; @@ -51,10 +52,10 @@ type CommandOptions = { }; const installStorybook = (projectType: ProjectType, options: CommandOptions): Promise => { - const useYarn = Boolean(options.useNpm !== true) && hasYarn(); + const packageManager = JsPackageManagerFactory.getPackageManager(options.useNpm); const npmOptions = { - useYarn, + useYarn: Boolean(options.useNpm !== true) && hasYarn(), installAsDevDependencies: true, skipInstall: options.skipInstall, }; @@ -69,15 +70,13 @@ const installStorybook = (projectType: ProjectType, options: CommandOptions): Pr storyFormat: options.storyFormat || defaultStoryFormat, }; - const runStorybookCommand = useYarn ? 'yarn storybook' : 'npm run storybook'; - const end = () => { if (!options.skipInstall) { installDepsFromPackageJson(npmOptions); } logger.log('\nTo run your storybook, type:\n'); - codeLog([runStorybookCommand]); + codeLog([packageManager.getRunStorybookCommand()]); logger.log('\nFor more information visit:', chalk.cyan('https://storybook.js.org')); // Add a new line for the clear visibility. diff --git a/lib/cli/src/js-package-manager/JsPackageManager.ts b/lib/cli/src/js-package-manager/JsPackageManager.ts index 8a407c6c8d8..bcf1cbcd882 100644 --- a/lib/cli/src/js-package-manager/JsPackageManager.ts +++ b/lib/cli/src/js-package-manager/JsPackageManager.ts @@ -1,3 +1,5 @@ export abstract class JsPackageManager { public abstract initPackageJson(): void; + + public abstract getRunStorybookCommand(): string; } diff --git a/lib/cli/src/js-package-manager/NPMProxy.ts b/lib/cli/src/js-package-manager/NPMProxy.ts index 2e4ca422c08..6145675570f 100644 --- a/lib/cli/src/js-package-manager/NPMProxy.ts +++ b/lib/cli/src/js-package-manager/NPMProxy.ts @@ -11,4 +11,8 @@ export class NPMProxy extends JsPackageManager { }); return results.stdout; } + + getRunStorybookCommand(): string { + return 'npm run storybook'; + } } diff --git a/lib/cli/src/js-package-manager/Yarn1Proxy.ts b/lib/cli/src/js-package-manager/Yarn1Proxy.ts index fc2a3bec73a..c90b77fa5a4 100644 --- a/lib/cli/src/js-package-manager/Yarn1Proxy.ts +++ b/lib/cli/src/js-package-manager/Yarn1Proxy.ts @@ -11,4 +11,8 @@ export class Yarn1Proxy extends JsPackageManager { }); return results.stdout; } + + getRunStorybookCommand(): string { + return 'yarn storybook'; + } } diff --git a/lib/cli/src/js-package-manager/Yarn2Proxy.ts b/lib/cli/src/js-package-manager/Yarn2Proxy.ts index 86ea0b70378..6965239f62a 100644 --- a/lib/cli/src/js-package-manager/Yarn2Proxy.ts +++ b/lib/cli/src/js-package-manager/Yarn2Proxy.ts @@ -11,4 +11,8 @@ export class Yarn2Proxy extends JsPackageManager { }); return results.stdout; } + + getRunStorybookCommand(): string { + return 'yarn storybook'; + } }