diff --git a/packages/@ionic/cli/src/definitions.ts b/packages/@ionic/cli/src/definitions.ts index 4f17d688e..fe35120f6 100644 --- a/packages/@ionic/cli/src/definitions.ts +++ b/packages/@ionic/cli/src/definitions.ts @@ -481,7 +481,7 @@ export interface ITelemetry { sendCommand(command: string, args: string[]): Promise; } -export type NpmClient = 'yarn' | 'npm' | 'pnpm'; +export type NpmClient = 'yarn' | 'npm' | 'pnpm' | 'bun'; export type FeatureId = 'ssl-commands'; diff --git a/packages/@ionic/cli/src/lib/build.ts b/packages/@ionic/cli/src/lib/build.ts index dc07de3a3..4b1132822 100644 --- a/packages/@ionic/cli/src/lib/build.ts +++ b/packages/@ionic/cli/src/lib/build.ts @@ -48,6 +48,7 @@ export abstract class BuildRunner> implements Runner npm: NpmBuildCLI, pnpm: PnpmBuildCLI, yarn: YarnBuildCLI, + bun: BunBuildCLI, }; const client = this.e.config.get('npmClient'); @@ -307,6 +308,12 @@ export class YarnBuildCLI extends PkgManagerBuildCLI { readonly program = 'yarn'; } +export class BunBuildCLI extends PkgManagerBuildCLI { + readonly name = 'Bun'; + readonly pkg = 'bun'; + readonly program = 'bun'; +} + class BuildBeforeHook extends Hook { readonly name = 'build:before'; } diff --git a/packages/@ionic/cli/src/lib/serve.ts b/packages/@ionic/cli/src/lib/serve.ts index 0e8ff5b6e..bfb12c698 100644 --- a/packages/@ionic/cli/src/lib/serve.ts +++ b/packages/@ionic/cli/src/lib/serve.ts @@ -107,6 +107,7 @@ export abstract class ServeRunner implements Runner 0) { - if (npmClient === 'npm' || npmClient === 'pnpm') { + if (npmClient === 'npm' || npmClient === 'pnpm' || npmClient === 'bun') { installerArgs.push('--'); }