{"id":17929230,"url":"https://github.com/skarab42/detect-package-manager","last_synced_at":"2025-03-24T04:30:57.500Z","repository":{"id":53838643,"uuid":"521649191","full_name":"skarab42/detect-package-manager","owner":"skarab42","description":"Detects which package manager (bun, pnpm, yarn, npm) is used.","archived":false,"fork":false,"pushed_at":"2023-10-07T01:55:39.000Z","size":322,"stargazers_count":13,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-21T11:29:15.469Z","etag":null,"topics":["bun","lock-file","lockfile","npm","package-manager","packagemanager","pnpm","version","yarn"],"latest_commit_sha":null,"homepage":"https://npmjs.com/package/@skarab/detect-package-manager","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skarab42.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-05T13:30:16.000Z","updated_at":"2024-04-24T14:19:25.000Z","dependencies_parsed_at":"2024-10-28T21:08:19.403Z","dependency_job_id":"152e7f03-edef-4993-8bf5-661997e1fadd","html_url":"https://github.com/skarab42/detect-package-manager","commit_stats":{"total_commits":13,"total_committers":1,"mean_commits":13.0,"dds":0.0,"last_synced_commit":"e6e7bf4ef1dce6e15ff22968c57cb504c3f20f08"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skarab42%2Fdetect-package-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skarab42%2Fdetect-package-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skarab42%2Fdetect-package-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skarab42%2Fdetect-package-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skarab42","download_url":"https://codeload.github.com/skarab42/detect-package-manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245210866,"owners_count":20578306,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bun","lock-file","lockfile","npm","package-manager","packagemanager","pnpm","version","yarn"],"created_at":"2024-10-28T21:08:13.243Z","updated_at":"2025-03-24T04:30:57.249Z","avatar_url":"https://github.com/skarab42.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @skarab/detect-package-manager\n\nDetects which package manager (bun, pnpm, yarn, npm) is used based on the current working directory.\n\n## Features\n\n- Support `packageManager` field in `package.json`.\n- Detect PM agent version from lock file name, format or version.\n- No dependency, fully typed and well tested!\n\n_TODO_\n\n- Resolve external lock file such as `lockfile-directory` in `.npmrc` (PR welcome).\n\n## Installation\n\n```bash\npnpm add @skarab/detect-package-manager\n```\n\n## Usage\n\nDetect the PM agent from the current working directory.\n\n```ts\nimport { detectAgent } from '@skarab/detect-package-manager';\n\nconst agent = await detectAgent();\n\nconsole.log(agent); // { name: 'pnpm', version: '7.6.0' }\n```\n\nDetect the PM agent from a provided directory.\n\n```ts\nimport { detectAgent } from '@skarab/detect-package-manager';\n\nconst agent = await detectAgent('path/to/yarn/project');\n\nconsole.log(agent); // { name: 'yarn', version: '1.22.17' }\n```\n\nDetect all installed and [known](#known-agents) agents.\n\n```ts\nimport { detectInstalledAgents } from '@skarab/detect-package-manager';\n\nconst agents = await api.detectInstalledAgents();\n\nconsole.log(agents.has('pnpm')); // true\n\n// agents === Map(3) {\n//   'pnpm' =\u003e { name: 'pnpm', version: '7.6.0' },\n//   'yarn' =\u003e { name: 'yarn', version: '1.22.17' },\n//   'npm' =\u003e { name: 'npm', version: '8.13.2' }\n// }\n```\n\n## Known agents\n\n- [bun](https://bun.sh/) Bun is a fast all-in-one JavaScript runtime.\n- [pnpm](https://pnpm.io/) Fast, disk space efficient package manager.\n- [yarn](https://yarnpkg.com/) Yarn is a package manager that doubles down as project manager.\n- [npm](https://www.npmjs.com/package/npm) A JavaScript package manager.\n\n## Related\n\n- [detect-package-manager](https://github.com/egoist/detect-package-manager) Detect which package manager you're using (yarn or pnpm or npm)\n- [preferred-pm](https://github.com/zkochan/packages/tree/main/preferred-pm) Returns the preferred package manager of a project\n- [@antfu/ni](https://github.com/antfu/ni) Use the right package manager\n\n---\n\nScaffolded with [@skarab/skaffold](https://www.npmjs.com/package/@skarab/skaffold)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskarab42%2Fdetect-package-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskarab42%2Fdetect-package-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskarab42%2Fdetect-package-manager/lists"}