自动检查代码仓库依赖版本并提交更新 PR 的依赖管理工具。
yowainwright/pastoralist
一个命令行工具,为 package.json 中的依赖覆盖项记录台账并进行安全扫描,便于安全地维护。
- Star
- 109
- Fork
- 56
- 未关闭 Issue
- 1
- 最近提交
- 15小时前
这是什么?
Pastoralist 用于长期维护依赖覆盖项(overrides),支持 npm overrides、pnpm overrides、Yarn resolutions 和 Bun overrides。运行后会在 package.json 中追加一份台账,记录每个覆盖项被哪些包依赖、首次记录的时间,以及是否可以移除。
工具支持 npm、pnpm(包括 pnpm 11+ 的 pnpm-workspace.yaml)、Yarn 和 Bun 项目,并可通过工作区路径和 manifest 通配符处理 monorepo。只读的 doctor 命令可预览变更,主命令也支持 --dry-run。
可选的漏洞扫描支持 OSV(默认)、GitHub、Snyk、npm、Socket 和 Spektion 等数据源。扫描结果可交互式修复或自动应用,也可缓存或以 JSON 格式输出,方便接入 CI。
核心功能
- 01在 package.json 中记录每个覆盖项的依赖方和首次记录日期。
- 02支持 npm、pnpm、Yarn 和 Bun 的覆盖项格式。
- 03通过只读的 doctor 命令或 --dry-run 预览变更。
- 04可对接 OSV、GitHub、Snyk、npm、Socket 和 Spektion 进行漏洞检查。
- 05识别未使用的覆盖项,并可移除已确认无用的条目。
- 06支持 JSON 输出,静默模式下发现安全问题时以非零码退出,方便 CI 使用。
适用场景
- 为修复传递依赖漏洞而设置的覆盖项保持记录完整、及时更新。
- 在清理前核查哪些覆盖项仍然需要。
- 在 CI 流水线中加入依赖安全检查。
- 在包含多个 package.json 的 monorepo 中统一维护覆盖项。
快速上手
- 1
使用 npm 全局安装 CLI
npm install --global pastoralist - 2
在项目中作为开发依赖安装
npm install pastoralist --save-dev - 3
运行只读健康检查以预览更改
npx pastoralist doctor - 4
运行 pastoralist 更新覆盖依赖附录
npx pastoralist
使用前须知
- 安全扫描提供方(如 GitHub、Snyk、Socket)可能需要 API 令牌才能使用。
收录于专题
标签
常见问题
- pastoralist 是什么?
- 一个命令行工具,为 package.json 中的依赖覆盖项记录台账并进行安全扫描,便于安全地维护。 Pastoralist 用于长期维护依赖覆盖项(overrides),支持 npm overrides、pnpm overrides、Yarn resolutions 和 Bun overrides。运行后会在 package.json 中追加一份台账,记录每个覆盖项被哪些包依赖、首次记录的时间,以及是否可以移除。
- pastoralist 可以免费使用吗?用的什么许可证?
- pastoralist 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- pastoralist 还在维护吗?
- 活跃维护中。pastoralist 最近一次提交是在 2026年10月22日。
- pastoralist 适合用来做什么?
- 为修复传递依赖漏洞而设置的覆盖项保持记录完整、及时更新。 在清理前核查哪些覆盖项仍然需要。 在 CI 流水线中加入依赖安全检查。 在包含多个 package.json 的 monorepo 中统一维护覆盖项。
- pastoralist 怎么安装和运行?
- 使用 npm 全局安装 CLI: npm install --global pastoralist 在项目中作为开发依赖安装: npm install pastoralist --save-dev 运行只读健康检查以预览更改: npx pastoralist doctor 运行 pastoralist 更新覆盖依赖附录: npx pastoralist
- 在哪里获取 pastoralist?
- 源代码和安装说明在 GitHub 上:https://github.com/yowainwright/pastoralist
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 Rust 的前端工具链,整合了兼容 npm 的包管理器、Turbopack 打包器和可在浏览器运行的 WASM 版本。
面向 monorepo 的版本号与变更日志管理 CLI,通过贡献者随改动提交的 changeset 文件完成发版。
一个以 Windows 为主的图形界面,可统一管理 WinGet、Scoop、Chocolatey、Homebrew、APT、pip、npm 等多种包管理器。
统一的 Web 开发工具链,通过一个 vp 命令整合 Vite、Vitest、Oxlint、Oxfmt 等工具,并管理 Node.js 与包管理器。
一体化 JavaScript/TypeScript 工具链,集运行时、打包器、测试运行器和包管理器于一个可执行文件。