diff options
author | 2023-09-06 02:15:10 -0700 | |
---|---|---|
committer | 2023-09-06 17:15:10 +0800 | |
commit | d2f2a11cdb42b0de79be21c798eda8e7e7b2a277 (patch) | |
tree | a1619904a1ec51bd6f25d0909db8707e57cf1f3d /packages/create-astro/src | |
parent | eb8c4cc2fc578095e73f80c712615f323c7cbc61 (diff) | |
download | astro-d2f2a11cdb42b0de79be21c798eda8e7e7b2a277.tar.gz astro-d2f2a11cdb42b0de79be21c798eda8e7e7b2a277.tar.zst astro-d2f2a11cdb42b0de79be21c798eda8e7e7b2a277.zip |
Improve Package Detection (#8306)
Diffstat (limited to 'packages/create-astro/src')
-rw-r--r-- | packages/create-astro/src/actions/context.ts | 6 | ||||
-rw-r--r-- | packages/create-astro/src/actions/dependencies.ts | 14 | ||||
-rw-r--r-- | packages/create-astro/src/actions/next-steps.ts | 17 |
3 files changed, 20 insertions, 17 deletions
diff --git a/packages/create-astro/src/actions/context.ts b/packages/create-astro/src/actions/context.ts index 5c2c0e9c0..c91a0caae 100644 --- a/packages/create-astro/src/actions/context.ts +++ b/packages/create-astro/src/actions/context.ts @@ -9,7 +9,7 @@ export interface Context { help: boolean; prompt: typeof prompt; cwd: string; - pkgManager: string; + packageManager: string; username: string; version: string; skipHouston: boolean; @@ -51,7 +51,7 @@ export async function getContext(argv: string[]): Promise<Context> { { argv, permissive: true } ); - const pkgManager = detectPackageManager()?.name ?? 'npm'; + const packageManager = detectPackageManager()?.name ?? 'npm'; const [username, version] = await Promise.all([getName(), getVersion()]); let cwd = flags['_'][0]; let { @@ -85,7 +85,7 @@ export async function getContext(argv: string[]): Promise<Context> { const context: Context = { help, prompt, - pkgManager, + packageManager, username, version, skipHouston, diff --git a/packages/create-astro/src/actions/dependencies.ts b/packages/create-astro/src/actions/dependencies.ts index 339e3379f..f05e9e93a 100644 --- a/packages/create-astro/src/actions/dependencies.ts +++ b/packages/create-astro/src/actions/dependencies.ts @@ -6,7 +6,7 @@ import { shell } from '../shell.js'; import type { Context } from './context'; export async function dependencies( - ctx: Pick<Context, 'install' | 'yes' | 'prompt' | 'pkgManager' | 'cwd' | 'dryRun'> + ctx: Pick<Context, 'install' | 'yes' | 'prompt' | 'packageManager' | 'cwd' | 'dryRun'> ) { let deps = ctx.install ?? ctx.yes; if (deps === undefined) { @@ -25,15 +25,15 @@ export async function dependencies( await info('--dry-run', `Skipping dependency installation`); } else if (deps) { await spinner({ - start: `Installing dependencies with ${ctx.pkgManager}...`, + start: `Installing dependencies with ${ctx.packageManager}...`, end: 'Dependencies installed', while: () => { - return install({ pkgManager: ctx.pkgManager, cwd: ctx.cwd }).catch((e) => { + return install({ packageManager: ctx.packageManager, cwd: ctx.cwd }).catch((e) => { error('error', e); error( 'error', `Dependencies failed to install, please run ${color.bold( - ctx.pkgManager + ' install' + ctx.packageManager + ' install' )} to install them manually after setup.` ); }); @@ -47,9 +47,9 @@ export async function dependencies( } } -async function install({ pkgManager, cwd }: { pkgManager: string; cwd: string }) { - if (pkgManager === 'yarn') await ensureYarnLock({ cwd }); - return shell(pkgManager, ['install'], { cwd, timeout: 90_000, stdio: 'ignore' }); +async function install({ packageManager, cwd }: { packageManager: string; cwd: string }) { + if (packageManager === 'yarn') await ensureYarnLock({ cwd }); + return shell(packageManager, ['install'], { cwd, timeout: 90_000, stdio: 'ignore' }); } async function ensureYarnLock({ cwd }: { cwd: string }) { diff --git a/packages/create-astro/src/actions/next-steps.ts b/packages/create-astro/src/actions/next-steps.ts index 01c1963d9..c79a80525 100644 --- a/packages/create-astro/src/actions/next-steps.ts +++ b/packages/create-astro/src/actions/next-steps.ts @@ -3,14 +3,17 @@ import type { Context } from './context'; import { nextSteps, say } from '../messages.js'; -export async function next(ctx: Pick<Context, 'cwd' | 'pkgManager' | 'skipHouston'>) { +export async function next(ctx: Pick<Context, 'cwd' | 'packageManager' | 'skipHouston'>) { let projectDir = path.relative(process.cwd(), ctx.cwd); - const devCmd = - ctx.pkgManager === 'npm' - ? 'npm run dev' - : ctx.pkgManager === 'bun' - ? 'bun run dev' - : `${ctx.pkgManager} dev`; + + const commandMap: { [key: string]: string } = { + npm: 'npm run dev', + bun: 'bun run dev', + yarn: 'yarn dev', + pnpm: 'pnpm dev', + }; + + const devCmd = commandMap[ctx.packageManager as keyof typeof commandMap] || 'npm run dev'; await nextSteps({ projectDir, devCmd }); if (!ctx.skipHouston) { |