mirror of
https://github.com/nuxt/nuxt.git
synced 2025-02-24 17:39:06 +00:00
28 lines
757 B
TypeScript
28 lines
757 B
TypeScript
import { execSync } from 'node:child_process'
|
|
import { existsSync } from 'node:fs'
|
|
import { resolve } from 'pathe'
|
|
import { findup } from './fs'
|
|
|
|
export const packageManagerLocks = {
|
|
yarn: 'yarn.lock',
|
|
npm: 'package-lock.json',
|
|
pnpm: 'pnpm-lock.yaml'
|
|
}
|
|
|
|
type PackageManager = keyof typeof packageManagerLocks
|
|
|
|
export function getPackageManager (rootDir: string) {
|
|
return findup(rootDir, (dir) => {
|
|
for (const name in packageManagerLocks) {
|
|
const path = packageManagerLocks[name as PackageManager]
|
|
if (path && existsSync(resolve(dir, path))) {
|
|
return name
|
|
}
|
|
}
|
|
}) as PackageManager | null
|
|
}
|
|
|
|
export function getPackageManagerVersion (name: string) {
|
|
return execSync(`${name} --version`).toString('utf8').trim()
|
|
}
|