pacote-install
Version:
A tool to download npm packages from specific registries
124 lines (83 loc) • 3.29 kB
Markdown
# Pacote Install
一个用于从特定的npm registry下载npm包的工具,并支持递归安装依赖。
## 功能特点
- 支持从指定registry下载npm包
- 支持同时安装多个npm包
- 递归安装包的依赖到包的node_modules目录
- 支持安装包的peerDependencies
- 支持通过命令行使用,也可作为SDK集成到其他项目中
## 安装
```bash
npm install -g pacote-install
```
或者使用npx直接运行而不安装:
```bash
npx pacote-install <package-name> [package-name2...]
```
## 使用方法
### 命令行使用
```bash
# 使用默认registry安装单个包
pacote-install @ub/bell-cli
# 使用指定registry安装包
pacote-install @ub/bell-cli --registry=https://npm.mayfair-inc.com
# 同时安装多个包
pacote-install @ub/uxp-superpage @ub/uxp-lang-switch --registry=https://npm.mayfair-inc.com
# 安装包及其peerDependencies
pacote-install @ub/bell-cli --peer
```
### 作为SDK使用
```typescript
import { install } from 'pacote-install';
// 安装包
await install('@ub/bell-cli', undefined, { registry: 'https://npm.mayfair-inc.com' });
// 或者更细粒度的控制
import { installPackage, installDependencies } from 'pacote-install';
// 只安装主包,不安装依赖
const targetDir = await installPackage('@ub/bell-cli', './my-packages/bell-cli', { registry: 'https://npm.mayfair-inc.com' });
// 安装包的依赖
await installDependencies(targetDir, { registry: 'https://npm.mayfair-inc.com' });
```
## API文档
### install(packageName, targetDir?, options?)
完整安装流程,包括安装主包和递归安装其依赖。
- `packageName` (string): 要安装的包名,例如:`@ub/bell-cli` 或 `@ub/bell-cli@latest`
- `targetDir` (string, 可选): 目标安装目录,默认为当前目录下的 `node_modules/<package-name>`
- `options` (object, 可选):
- `registry` (string, 可选): npm registry的URL,默认为 `https://registry.npmjs.org/`
- `peer` (boolean, 可选): 是否安装peerDependencies,默认为 `false`
### installPackage(packageName, targetDir, options?)
只安装单个包,不处理依赖。
- `packageName` (string): 要安装的包名
- `targetDir` (string): 目标安装目录
- `options` (object, 可选):
- `registry` (string, 可选): npm registry的URL
### installDependencies(packageDir, options?)
递归安装一个包的所有依赖。
- `packageDir` (string): 包含package.json的目录路径
- `options` (object, 可选):
- `registry` (string, 可选): npm registry的URL
- `peer` (boolean, 可选): 是否安装peerDependencies,默认为 `false`
## 开发
```bash
# 安装依赖
npm install
# 开发模式运行
npm run dev
# 构建
npm run build
# 运行测试
npm test
```
## 贡献指南
欢迎提交 Issue 或 Pull Request 来改进此项目。
## 版本历史
- 0.0.7: 清理代码,修复bug,改进稳定性
- 0.0.6: 添加force选项支持沿用已安装的版本,提升安装效率
- 0.0.5: 添加force选项支持沿用已安装的版本,提升安装效率
- 0.0.4: 添加--peer选项支持安装包的peerDependencies
- 0.0.3: 优化错误处理,添加json工具类,更新依赖
- 0.0.2: 添加了超时与重试机制,改进了日志输出
- 0.0.1: 首次发布,基本功能实现
## License
ISC