Skip to content

Commit 23fd4bb

Browse files
committed
fix: using current package manager to execute shadcn
1 parent 7121ff3 commit 23fd4bb

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

src/create-app.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { format } from 'prettier'
66
import chalk from 'chalk'
77

88
import { CODE_ROUTER, FILE_ROUTER } from './constants.js'
9+
import { packageManagerExecute } from './package-manager.js'
910

1011
import type { Environment } from './environment.js'
1112
import type { Options } from './types.js'
@@ -485,9 +486,11 @@ export async function createApp(
485486
s?.start(
486487
`Installing shadcn components (${Array.from(shadcnComponents).join(', ')})...`,
487488
)
488-
await environment.execute(
489-
'npx',
490-
['shadcn@latest', 'add', '--silent', '--yes', ...shadcnComponents],
489+
await packageManagerExecute(
490+
environment,
491+
options.packageManager,
492+
'shadcn@latest',
493+
['add', '--silent', '--yes', ...shadcnComponents],
491494
resolve(targetDir),
492495
)
493496
s?.stop(`Installed additional shadcn components`)

src/package-manager.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import type { Environment } from './environment'
2+
13
export const SUPPORTED_PACKAGE_MANAGERS = [
24
'npm',
35
'yarn',
@@ -21,3 +23,24 @@ export function getPackageManager(): PackageManager | undefined {
2123

2224
return packageManager
2325
}
26+
27+
export function packageManagerExecute(
28+
environment: Environment,
29+
packagerManager: PackageManager,
30+
pkg: string,
31+
args: Array<string>,
32+
cwd: string,
33+
) {
34+
switch (packagerManager) {
35+
case 'yarn':
36+
return environment.execute('yarn', ['dlx', pkg, ...args], cwd)
37+
case 'pnpm':
38+
return environment.execute('pnpx', [pkg, ...args], cwd)
39+
case 'bun':
40+
return environment.execute('bunx', [pkg, ...args], cwd)
41+
case 'deno':
42+
return environment.execute('deno', ['run', `npm:${pkg}`, ...args], cwd)
43+
default:
44+
return environment.execute('npx', [pkg, ...args], cwd)
45+
}
46+
}

0 commit comments

Comments
 (0)