Socket
Socket
Sign inDemoInstall

nypm

Package Overview
Dependencies
20
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    nypm

Unified Package Manager for Node.js


Version published
Weekly downloads
2.2M
increased by2.43%
Maintainers
1
Install size
732 kB
Created
Weekly downloads
 

Changelog

Source

v0.3.8

compare changes

🚀 Enhancements

  • Add detect command (8fe78d1)

🩹 Fixes

  • Findup until root from user cwd (0309498)

🏡 Chore

❤️ Contributors

Readme

Source

🌈 nypm

npm version npm downloads Github Actions Codecov

Unified Package Manager for Node.js and Bun

What does nypm do?

✅ 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 when available.

Minimal implementation.

nypm, detects package manager type and version and converts command into package manager CLI arguments. It then uses corepack or proper command to execute package manager's command and download it if necessary.

  +------------------------------------------------+
  |                nypm                            |
  +------------------------------------------------+
  +-----------------------------------+  +---------+
  |              Corepack             |  |  bun    |
  +-----------------------------------+  +---------+
  +---------+  +---------+  +---------+
  |   npm   |  |  yarn   |  |  pnpm   |
  +---------+  +---------+  +---------+

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:

# ✨ Auto-detect
npx nypm i nypm

# npm
npm install nypm

# yarn
yarn add nypm

# pnpm
pnpm install nypm

# bun
bun install nypm

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:

  1. Use packageManager field from package.json
  2. 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 (use npm 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.

License

Made with 💛

Published under MIT License.

FAQs

Last updated on 03 Mar 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc