🌈 nypm
Node.js和Bun的统一包管理器
nypm能做什么?
✅ 开箱即用支持npm、yarn、pnpm和bun,提供统一的API。
✅ 提供与包管理器交互的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使用
安装包:
# ✨ 自动检测
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许可证发布。