用途:修复 .github/workflows/audit-dependencies.sh 报告的依赖漏洞,适用于 pnpm audit 或 audit-dependencies CI 检查失败时。
主要能力:按包分组漏洞并追踪依赖链,区分直接依赖与传递依赖;优先尝试直接依赖升级,其次锁文件更新,最后才使用 pnpm override,且每个 override 需说明为何更简单方案不可行。
使用方式:运行 ./.github/workflows/audit-dependencies.sh $ARGUMENTS,$ARGUMENTS 为严重级别,默认 high,high 包含 critical;脚本执行 pnpm audit --prod --json 并筛选有修复版本的漏洞。判断父包版本是固定还是范围:pnpm view <parent> dependencies.<vulnerable-pkg>;若范围已含修复版本,用 pnpm update <vulnerable-pkg> --recursive。override 写在根 package.json 的 pnpm.overrides,格式 "<parent>><vulnerable-pkg>": "^<fixed-version>",使用 ^ 而非 >=,仅支持单层父级作用域,不支持 pkg@^2 这类版本选择器,且仅根工作区生效。添加前用 pnpm view <pkg>@<version> version 确认版本存在。应用前需向用户展示方案并获确认,随后 pnpm install(原生构建失败可加 --ignore-scripts)、重跑审计脚本须退出 0、pnpm run build:core 及受影响包构建,查找 GHSA/CVE,最后以 fix(deps): resolve $ARGUMENTS severity audit vulnerabilities 提交并创建 PR。
限制:override 仅在父包固定版本不满足修复、无父包版本可修复、父包升级破坏性风险高或用户明确推迟时使用;需注意同一依赖可能出现在多个工作区包中。