From 45bbb452c209bea11be82b0448699002a562dacf Mon Sep 17 00:00:00 2001 From: Cesar Fonseca Date: Wed, 16 Oct 2024 15:01:37 -0500 Subject: [PATCH 1/3] feat(cli): now support bun --- packages/@ionic/cli/src/definitions.ts | 2 +- packages/@ionic/cli/src/lib/utils/npm.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/@ionic/cli/src/definitions.ts b/packages/@ionic/cli/src/definitions.ts index 4f17d688e9..fe35120f68 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/utils/npm.ts b/packages/@ionic/cli/src/lib/utils/npm.ts index c717b1924d..8a03ea09d9 100644 --- a/packages/@ionic/cli/src/lib/utils/npm.ts +++ b/packages/@ionic/cli/src/lib/utils/npm.ts @@ -91,6 +91,9 @@ export async function pkgManagerArgs(npmClient: NpmClient, options: PkgManagerOp case 'pnpm': vocab = { run: 'run', install: 'add', bareInstall: 'install', uninstall: 'remove', dedupe: '', rebuild: 'rebuild', global: '--global', save: '', saveDev: '--save-dev', saveExact: '--save-exact', nonInteractive: '', lockFileOnly: '--lockfile-only' }; break; + case 'bun': + vocab = { run: 'run', install: 'add', bareInstall: 'install', uninstall: 'remove', dedupe: '', rebuild: 'rebuild', global: '--global', save: '', saveDev: '--save-dev', saveExact: '--save-exact', nonInteractive: '', lockFileOnly: '' }; + break; default: throw new Error(`unknown installer: ${npmClient}`); } From 44e588be6fbdb6030896ec8a5cd614e313a2687f Mon Sep 17 00:00:00 2001 From: Cesar Fonseca Date: Wed, 16 Oct 2024 15:17:14 -0500 Subject: [PATCH 2/3] feat(cli): now support bun --- packages/@ionic/cli/src/lib/build.ts | 7 +++++++ packages/@ionic/cli/src/lib/serve.ts | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/packages/@ionic/cli/src/lib/build.ts b/packages/@ionic/cli/src/lib/build.ts index dc07de3a3b..4b1132822f 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 0e8ff5b6eb..bfb12c6983 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 Date: Wed, 16 Oct 2024 15:20:37 -0500 Subject: [PATCH 3/3] feat(cli): now support bun --- packages/@ionic/cli/src/lib/utils/npm.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@ionic/cli/src/lib/utils/npm.ts b/packages/@ionic/cli/src/lib/utils/npm.ts index 8a03ea09d9..66d1274532 100644 --- a/packages/@ionic/cli/src/lib/utils/npm.ts +++ b/packages/@ionic/cli/src/lib/utils/npm.ts @@ -161,7 +161,7 @@ export async function pkgManagerArgs(npmClient: NpmClient, options: PkgManagerOp } if (cmd === 'run' && options.script && options.scriptArgs && options.scriptArgs.length > 0) { - if (npmClient === 'npm' || npmClient === 'pnpm') { + if (npmClient === 'npm' || npmClient === 'pnpm' || npmClient === 'bun') { installerArgs.push('--'); }