🌈 nypm
Unified Package Manager for Node.js
🚧 This project is under development. Please follow issues for the roadmap. 🚧
✅ Supports npm, yarn, pnpm and bun out of the box with a unified API
✅ Provides an API interface to interact with package managers
✅ Autodetects project's package manager using package.json and known lockfiles
✅ Auto-installs and use exactly expected version of supported package managers using nodejs/corepack
✅ Minimal implementation
nypm, detects package manager type and version and converts command into package manager CLI arguments. It then uses corepack to execute package manager's command (and download it if necessary).
+------------------------------------------------+
| nypm |
+------------------------------------------------+
+-----------------------------------+
| Corepack |
+-----------------------------------+
+---------+ +---------+ +---------+ +---------+
| npm | | yarn | | pnpm | | bun |
+---------+ +---------+ +---------+ +---------+
+------------------------------------------------+
| Node.js project |
+------------------------------------------------+
Install dependencies:
npx nypm@latest i
Add a dependency:
npx nypm@latest add defu
Remove a dependency:
npx nypm@latest remove defu
Install package:
# npm
npm install nypm
# pnpm
pnpm install nypm
# yarn
yarn add nypm
# bun
bun install nypm
Import:
// ESM
import {
detectPackageManager,
installDependencies,
addDependency,
addDevDependency,
removeDependency,
} from "nypm";
// CommonJS
const {
detectPackageManager,
installDependencies,
addDependency,
addDevDependency,
removeDependency,
} = require("nypm");
- Clone this repository
- Play Nyan Cat in the background (really important!)
- Enable Corepack using
corepack enable
(usenpm i -g corepack
for Node.js < 16.10) - Install dependencies using
pnpm install
- Run interactive tests using
pnpm dev
NYPM is inspired from previous attempts and projects for unifying package manager exeperience.
Made with 💛
Published under MIT License.