Replacements for detect-package-manager
package-manager-detector
package-manager-detector is a lightweight alternative for detecting the package manager being used in a project.
It has zero dependencies, is ESM-only, and provides utilities such as constructing commands for different package managers.
Example migration from detect-package-manager:
ts
import { detect } from 'detect-package-manager'
import { detect } from 'package-manager-detector'
const pm = await detect()
const result = await detect()
const pm = result?.name NOTE
package-manager-detector returns an object with name and agent properties, while detect-package-manager returns a string directly.
Example migration from preferred-pm:
ts
import { preferredPM } from 'preferred-pm'
import { detect } from 'package-manager-detector'
const result = await preferredPM()
const result = await detect() Example migration from which-pm:
ts
import { whichPM } from 'which-pm'
import { detect } from 'package-manager-detector'
const result = await whichPM()
const result = await detect({
// Include the `install-metadata` strategy to have the package manager
// that's used for installation take precedence
strategies: [
'install-metadata',
'lockfile',
'packageManager-field',
'devEngines-field'
]
})