Awesome
🌈 nypm
<!-- automd:badges color="yellow" codecov --> <!-- /automd -->🌈 Unified Package Manager for Node.js (npm, pnpm, yarn), Bun and Deno.
✅ Supports npm, yarn, pnpm and bun and deno 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.
✅ corepack integration for pnpm and yarn.
nypm
command
Install dependencies:
npx nypm i
Add a dependency:
npx nypm add defu
Remove a dependency:
npx nypm remove defu
API Usage
Install package:
<!-- automd:pm-i --># ✨ Auto-detect
npx nypm install nypm
# npm
npm install nypm
# yarn
yarn add nypm
# pnpm
pnpm install nypm
# bun
bun install nypm
# deno
deno install nypm
<!-- /automd -->
Import:
// ESM
import { addDependency } from "nypm";
// CommonJS
const { addDependency } = require("nypm");
addDependency(name, options)
Adds dependency to the project.
addDevDependency(name, options)
Adds dev dependency to the project.
detectPackageManager(cwd, options)
Detect the package manager used in a directory (and up) by checking various sources:
- Use
packageManager
field from package.json - Known lock files and other files
ensureDependencyInstalled(name, options)
Ensures dependency is installed.
installDependencies(options)
Installs project dependencies.
removeDependency(name, options)
Removes dependency from the project.
💻 Development
- Clone this repository
- Play Nyan Cat in the background (really important!)
- Enable Corepack using
corepack enable
- Install dependencies using
pnpm install
- Run interactive tests using
pnpm dev
Related Projects
NYPM is inspired from previous attempts and projects for unifying package manager experience.
License
Made with 💛
Published under MIT License.
<!-- Badges -->