Skip to content

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'
  ] 
}) 

Released under the MIT License. (cb509db0)