一个用于清理 Verdaccio 缓存同时保留私有包的CLI工具。
- 安全第一: 默认只读扫描,需明确参数才会执行删除操作。
- 智能识别: 通过
_uplinks
字段准确区分私有包和缓存包。 - 多种模式: 支持直接确认、交互式确认等多种删除模式。
- 零依赖: 使用 Node.js 原生 API,无需安装额外依赖。
- 自动清理: 删除缓存包后,会自动清理产生的空目录。
最简单的方式是使用 npx
,无需全局安装。
npx verdaccio-keep-private <verdaccio-storage-path> [options]
verdaccio-keep-private <path> [options]
<path>
: 必需. Verdaccio 的storage
目录的绝对或相对路径。
--confirm
: 直接删除所有扫描到的缓存包,无二次确认。--interactive
: 进入交互模式,手动确认是否执行删除操作。-h, --help
: 显示帮助信息。
假设你的 Verdaccio storage 目录位于 /path/to/verdaccio/storage
。
1. 扫描并预览 (安全模式)
只扫描目录,列出将要保留的私有包和可以删除的缓存包,不执行任何删除操作。
npx verdaccio-keep-private /path/to/verdaccio/storage
2. 交互式删除
扫描后,会提示你确认是否删除所有缓存包。
npx verdaccio-keep-private /path/to/verdaccio/storage --interactive
# 程序会提问:
# 确定要删除 XX 个缓存包吗? (y/N): y
# ...开始删除...
3. 直接删除 (请谨慎使用)
扫描后,直接删除所有缓存包,没有确认环节。建议在执行前先进行备份。
npx verdaccio-keep-private /path/to/verdaccio/storage --confirm
- 备份: 在运行任何删除操作前,强烈建议先备份您的 Verdaccio storage 目录。
- 停止服务: 为避免文件占用或数据不一致,建议在清理时停止 Verdaccio 服务。
- 权限: 确保执行此工具的用户对 storage 目录有足够的读写权限。