diff --git a/packages/cli-kit/src/public/node/version.ts b/packages/cli-kit/src/public/node/version.ts index a28ba9e44cf..4a3a530a72b 100644 --- a/packages/cli-kit/src/public/node/version.ts +++ b/packages/cli-kit/src/public/node/version.ts @@ -27,15 +27,17 @@ export async function globalCLIVersion(): Promise { const env = {...process.env, SHOPIFY_CLI_NO_ANALYTICS: '1'} // Both execa and which find the project dependency. We need to exclude it. const shopifyBinaries = which.sync('shopify', {all: true}).filter((path) => !path.includes('node_modules')) - if (!shopifyBinaries[0]) return undefined - const output = await captureOutput(shopifyBinaries[0], [], {env}) - const versionMatch = output.match(/@shopify\/cli\/([^\s]+)/) - if (versionMatch && versionMatch[1]) { - const version = versionMatch[1] - if (satisfies(version, `>=3.59.0`) || isPreReleaseVersion(version)) { - return version - } + const globalBinary = shopifyBinaries[0] + if (!globalBinary) return undefined + + const output = await captureOutput(globalBinary, [], {env}) + const version = output.match(/@shopify\/cli\/([^\s]+)/)?.[1] + if (!version) return undefined + + if (satisfies(version, `>=3.59.0`) || isPreReleaseVersion(version)) { + return version } + return undefined // eslint-disable-next-line no-catch-all/no-catch-all } catch {