create-nex-app
Version:
create websites using my preferred stack
27 lines (23 loc) • 623 B
text/typescript
import { execSync } from "child_process";
type PackageManager = "npm" | "pnpm" | "yarn";
export function getPkgManager(): PackageManager {
try {
const userAgent = process.env.npm_config_user_agent;
if (userAgent) {
if (userAgent.startsWith("yarn")) {
return "yarn";
} else if (userAgent.startsWith("pnpm")) {
return "pnpm";
}
}
try {
execSync("yarn --version", { stdio: "ignore" });
return "yarn";
} catch {
execSync("pnpm --version", { stdio: "ignore" });
return "pnpm";
}
} catch {
return "npm";
}
}