diff --git a/.changeset/busy-maps-vanish.md b/.changeset/busy-maps-vanish.md new file mode 100644 index 0000000..cbe54d7 --- /dev/null +++ b/.changeset/busy-maps-vanish.md @@ -0,0 +1,5 @@ +--- +"create-better-t-stack": patch +--- + +Add package manager specific support for Tauri setup diff --git a/apps/cli/package.json b/apps/cli/package.json index 9bd6f1e..fadaab3 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -13,6 +13,7 @@ "url": "git+https://github.com/better-t-stack/create-better-t-stack.git", "directory": "apps/cli" }, + "files": ["dist", "template"], "homepage": "https://better-t-stack.pages.dev/", "scripts": { "build": "tsup", @@ -22,10 +23,6 @@ "test": "vitest run", "prepublishOnly": "npm run build" }, - "files": [ - "dist", - "template" - ], "dependencies": { "@clack/prompts": "^0.10.0", "commander": "^13.1.0", diff --git a/apps/cli/src/helpers/tauri-setup.ts b/apps/cli/src/helpers/tauri-setup.ts index 6063766..0108bcc 100644 --- a/apps/cli/src/helpers/tauri-setup.ts +++ b/apps/cli/src/helpers/tauri-setup.ts @@ -35,25 +35,45 @@ export async function setupTauri( await fs.writeJson(clientPackageJsonPath, packageJson, { spaces: 2 }); } - await execa( - "npx", - [ - "@tauri-apps/cli@latest", - "init", - `--app-name=${path.basename(projectDir)}`, - `--window-title=${path.basename(projectDir)}`, - "--frontend-dist=dist", - "--dev-url=http://localhost:3001", - `--before-dev-command=${packageManager} run dev`, - `--before-build-command=${packageManager} run build`, - ], - { - cwd: clientPackageDir, - env: { - CI: "true", - }, + let cmd: string; + let args: string[]; + + switch (packageManager) { + case "npm": + cmd = "npx"; + args = ["@tauri-apps/cli@latest"]; + break; + case "pnpm": + cmd = "pnpm"; + args = ["dlx", "@tauri-apps/cli@latest"]; + break; + case "bun": + cmd = "bunx"; + args = ["@tauri-apps/cli@latest"]; + break; + default: + cmd = "npx"; + args = ["@tauri-apps/cli@latest"]; + } + + args = [ + ...args, + "init", + `--app-name=${path.basename(projectDir)}`, + `--window-title=${path.basename(projectDir)}`, + "--frontend-dist=dist", + "--dev-url=http://localhost:3001", + `--before-dev-command=${packageManager} run dev`, + `--before-build-command=${packageManager} run build`, + ]; + + await execa(cmd, args, { + cwd: clientPackageDir, + env: { + CI: "true", }, - ); + }); + s.stop("Tauri desktop app support configured successfully!"); } catch (error) { s.stop(pc.red("Failed to set up Tauri"));