Skip to content

Commit 7481bee

Browse files
fix package manager detection
1 parent 0b3405c commit 7481bee

File tree

6 files changed

+27
-26
lines changed

6 files changed

+27
-26
lines changed

.changeset/cold-buses-jam.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"create-better-t-stack": patch
3+
---
4+
5+
fix package manager detection

apps/cli/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
"@inquirer/prompts": "^7.3.1",
2222
"chalk": "^5.3.0",
2323
"commander": "^13.1.0",
24-
"detect-package-manager": "^3.0.2",
2524
"execa": "^8.0.1",
2625
"fs-extra": "^11.2.0",
2726
"gradient-string": "^3.0.0",

apps/cli/src/create-project.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import path from "node:path";
22
import { confirm, select } from "@inquirer/prompts";
3-
import { detect } from "detect-package-manager";
43
import { execa } from "execa";
54
import fs from "fs-extra";
65
import ora from "ora";
76
import { setupTurso } from "./helpers/db-setup";
87
import type { PackageManager, ProjectConfig } from "./types";
8+
import { getUserPkgManager } from "./utils/get-package-manager";
99
import { logger } from "./utils/logger";
1010

1111
export async function createProject(options: ProjectConfig) {
@@ -38,7 +38,7 @@ export async function createProject(options: ProjectConfig) {
3838
let packageManager = options.packageManager;
3939

4040
if (!packageManager) {
41-
const detectedPackageManager = await detect();
41+
const detectedPackageManager = getUserPkgManager();
4242

4343
const useDetectedPackageManager = await confirm({
4444
message: `Use detected package manager (${detectedPackageManager})?`,

apps/cli/src/utils/generate-reproducible-command.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import { DEFAULT_CONFIG } from "../consts";
22
import type { ProjectConfig } from "../types";
3+
import { getUserPkgManager } from "./get-package-manager";
34

45
export function generateReproducibleCommand(config: ProjectConfig): string {
56
const flags: string[] = [];
7+
const defaultPackageManager = getUserPkgManager();
68

79
if (config.database !== DEFAULT_CONFIG.database) {
810
flags.push(`--database ${config.database}`);
@@ -12,7 +14,7 @@ export function generateReproducibleCommand(config: ProjectConfig): string {
1214
}
1315
if (
1416
config.packageManager &&
15-
config.packageManager !== DEFAULT_CONFIG.packageManager
17+
config.packageManager !== defaultPackageManager
1618
) {
1719
flags.push(`--package-manager ${config.packageManager}`);
1820
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
export type PackageManager = "npm" | "pnpm" | "yarn" | "bun";
2+
3+
export const getUserPkgManager: () => PackageManager = () => {
4+
const userAgent = process.env.npm_config_user_agent;
5+
6+
if (userAgent?.startsWith("yarn")) {
7+
return "yarn";
8+
}
9+
if (userAgent?.startsWith("pnpm")) {
10+
return "pnpm";
11+
}
12+
if (userAgent?.startsWith("bun")) {
13+
return "bun";
14+
}
15+
return "npm";
16+
};

bun.lock

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,14 @@
1414
},
1515
"apps/cli": {
1616
"name": "create-better-t-stack",
17-
"version": "0.2.1",
17+
"version": "0.3.0",
1818
"bin": {
1919
"create-better-t-stack": "dist/index.js"
2020
},
2121
"dependencies": {
2222
"@inquirer/prompts": "^7.3.1",
2323
"chalk": "^5.3.0",
2424
"commander": "^13.1.0",
25-
"detect-package-manager": "^3.0.2",
2625
"execa": "^8.0.1",
2726
"fs-extra": "^11.2.0",
2827
"gradient-string": "^3.0.0",
@@ -723,8 +722,6 @@
723722

724723
"detect-node-es": ["[email protected]", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="],
725724

726-
"detect-package-manager": ["[email protected]", "", { "dependencies": { "execa": "^5.1.1" } }, "sha512-8JFjJHutStYrfWwzfretQoyNGoZVW1Fsrp4JO9spa7h/fBfwgTMEIy4/LBzRDGsxwVPHU0q+T9YvwLDJoOApLQ=="],
727-
728725
"devlop": ["[email protected]", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="],
729726

730727
"diff-sequences": ["[email protected]", "", {}, "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q=="],
@@ -1779,8 +1776,6 @@
17791776

17801777
"cli-truncate/string-width": ["[email protected]", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="],
17811778

1782-
"detect-package-manager/execa": ["[email protected]", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="],
1783-
17841779
"enquirer/strip-ansi": ["[email protected]", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
17851780

17861781
"eslint/chalk": ["[email protected]", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
@@ -1925,20 +1920,6 @@
19251920

19261921
"@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["[email protected]", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="],
19271922

1928-
"detect-package-manager/execa/get-stream": ["[email protected]", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="],
1929-
1930-
"detect-package-manager/execa/human-signals": ["[email protected]", "", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="],
1931-
1932-
"detect-package-manager/execa/is-stream": ["[email protected]", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="],
1933-
1934-
"detect-package-manager/execa/npm-run-path": ["[email protected]", "", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="],
1935-
1936-
"detect-package-manager/execa/onetime": ["[email protected]", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="],
1937-
1938-
"detect-package-manager/execa/signal-exit": ["[email protected]", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="],
1939-
1940-
"detect-package-manager/execa/strip-final-newline": ["[email protected]", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="],
1941-
19421923
"enquirer/strip-ansi/ansi-regex": ["[email protected]", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
19431924

19441925
"eslint/strip-ansi/ansi-regex": ["[email protected]", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
@@ -2023,8 +2004,6 @@
20232004

20242005
"@manypkg/find-root/find-up/locate-path/p-locate": ["[email protected]", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="],
20252006

2026-
"detect-package-manager/execa/onetime/mimic-fn": ["[email protected]", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="],
2027-
20282007
"log-update/cli-cursor/restore-cursor/onetime": ["[email protected]", "", { "dependencies": { "mimic-function": "^5.0.0" } }, "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ=="],
20292008
}
20302009
}

0 commit comments

Comments
 (0)