detect-package-manager

How does this work?
- When there's
yarn.lock, package-lock.json, pnpm-lock.yaml, or bun.lockb in current working directory, it will skip other operations and directly resolve yarn, npm, pnpm, or bun.
- When there's no lockfile found, it checks if
yarn, pnpm, or bun command exists. If so, it resolves yarn, pnpm, or bun otherwise npm.
- Results are cached.
Install
yarn add detect-package-manager
Usage
const { detect } = require("detect-package-manager");
detect().then((pm) => {
console.log(pm);
//=> 'yarn', 'npm', or 'pnpm', 'bun'
});
API
detect([opts])
- Arguments:
opts.cwd: string Optional, defaults to ., the directory to look up yarn.lock, package-lock.json, or pnpm-lock.yaml.
opts.includeGlobalBun: boolean Optional, defaults to false, whether to check if bun exists in PATH.
- Returns:
Promise<PM>
It returns a Promise resolving the name of package manager, could be npm, yarn, or pnpm, bun.
getNpmVersion([pm])
- Arguments:
pm: string Optional, defaults to npm, could be npm, yarn, or pnpm, bun
- Returns:
Promise<string>
It returns a Promise resolving the version of npm or the package manager you specified.
clearCache()
Clear cache.
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Author
detect-package-manager © EGOIST, Released under the MIT License.
Authored and maintained by EGOIST with help from contributors (list).
github.com/egoist · GitHub @EGOIST · Twitter @_egoistlily