From fd6fc5d4f885dda44bb8b5e9483f36f021dc8173 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Mon, 23 May 2022 15:06:45 +0200 Subject: [PATCH] CLI: check for storybook before running upgrade --- lib/cli/src/upgrade.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/cli/src/upgrade.ts b/lib/cli/src/upgrade.ts index e656b994bdfb..8e99f22f5c35 100644 --- a/lib/cli/src/upgrade.ts +++ b/lib/cli/src/upgrade.ts @@ -9,6 +9,7 @@ import { } from './js-package-manager'; import { commandLog } from './helpers'; import { automigrate } from './automigrate'; +import { isStorybookInstalled } from './detect'; type Package = { package: string; @@ -152,6 +153,14 @@ export const upgrade = async ({ ...options }: UpgradeOptions) => { const packageManager = JsPackageManagerFactory.getPackageManager(useNpm); + const packageJson = packageManager.retrievePackageJson(); + + if (!isStorybookInstalled(packageJson)) { + commandLog( + `There's no Storybook installed in the current directory: ${process.cwd()}\nAre you running the command in the correct directory?\n` + ); + process.exit(0); + } commandLog(`Checking for latest versions of '@storybook/*' packages`); if (!options.disableTelemetry) { @@ -162,7 +171,7 @@ export const upgrade = async ({ if (!dryRun) flags.push('--upgrade'); flags.push('--target'); flags.push(prerelease ? 'greatest' : 'latest'); - flags = addExtraFlags(EXTRA_FLAGS, flags, packageManager.retrievePackageJson()); + flags = addExtraFlags(EXTRA_FLAGS, flags, packageJson); const check = spawnSync('npx', ['npm-check-updates@latest', '/storybook/', ...flags], { stdio: 'pipe', }).output.toString();