Add package manager specific support for Tauri setup

This commit is contained in:
Aman Varshney
2025-03-25 03:41:12 +05:30
parent ad0d875613
commit 380f659560
3 changed files with 44 additions and 22 deletions

View File

@@ -0,0 +1,5 @@
---
"create-better-t-stack": patch
---
Add package manager specific support for Tauri setup

View File

@@ -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",

View File

@@ -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"));