nypm
Node.js 的统一包管理器
Node.js 和 Bun 的统一包管理器
nypm 有什么作用?
✅ 通过统一的 API,开箱即用支持 npm、yarn、pnpm 和 bun。
✅ 提供用于与包管理器交互的 API 接口。
✅ 使用 package.json
和已知锁定文件自动检测项目的包管理器。
✅ 当可用时,使用 nodejs/corepack 自动安装并使用支持的包管理器的精确预期版本。
✅ 极简实现。
nypm 检测包管理器的类型和版本,并将命令转换为包管理器的 CLI 参数。然后,它使用 corepack 或适当的命令执行包管理器的命令,并在必要时下载它。
+------------------------------------------------+
| nypm |
+------------------------------------------------+
+-----------------------------------+ +---------+
| Corepack | | bun |
+-----------------------------------+ +---------+
+---------+ +---------+ +---------+
| npm | | yarn | | pnpm |
+---------+ +---------+ +---------+
nypm
命令
安装依赖
npx nypm i
添加依赖
npx nypm add defu
移除依赖
npx nypm remove defu
API 使用
安装包
# ✨ Auto-detect
npx nypm i nypm
# npm
npm install nypm
# yarn
yarn add nypm
# pnpm
pnpm install nypm
# bun
bun install nypm
导入
// ESM
import { addDependency } from "nypm";
// CommonJS
const { addDependency } = require("nypm");
addDependency(name, options)
将依赖项添加到项目。
addDevDependency(name, options)
将开发依赖项添加到项目。
detectPackageManager(cwd, options)
通过检查各种来源,检测目录中(及向上)使用的包管理器
- 使用 package.json 中的
packageManager
字段 - 已知锁定文件及其他文件
ensureDependencyInstalled(name, options)
确保依赖项已安装。
installDependencies(options)
安装项目依赖项。
removeDependency(name, options)
从项目中移除依赖项。
💻 开发
- 克隆此仓库
- 在后台播放 Nyan Cat (真的非常重要!)
- 使用
corepack enable
启用 Corepack(Node.js < 16.10 请使用npm i -g corepack
) - 使用
pnpm install
安装依赖项 - 使用
pnpm dev
运行交互式测试
相关项目
NYPM 的灵感来源于之前统一包管理器体验的尝试和项目。
许可
用心制作 💛
根据 MIT 许可证 发布。