SuperAPI AI 工具集

dependency-management

部署与运维

查看项目

更新于 10-18 18:03

技能介绍

用途

该技能用于在 Expo 应用中按一份书面策略管理 npm 依赖,覆盖添加、升级和移除包。它把依赖事实集中记录在应用的 contracts/dependency-policy.json 中,由该技能初始化该文件、规划每次变更,并据此校验仓库。目标是让每个包都处于正确版本和说明符、位于正确位置、足够旧、未被弃用、经过审查、允许发布,并且只安装一次。

主要能力

  • 维护一份书面策略:contracts/dependency-policy.json 保存版本表(版本、说明符、位置、原因)、保留的大版本、禁止添加项、禁用项和许可证策略,种子来自 templates/contracts/dependency-policy.json(规范技术栈验证于 2026-10-03,Expo SDK 57)。策略行与 package.json、package-lock.json 在同一提交中变更。
  • 规划依赖变更:通过 scripts/plan-dependency.mjs 生成计划,支持 --online、--remove、--peer-of、--npm-view 等参数。计划中的 FAIL 行(禁用、禁止添加、保留、不在表中、版本不同、过新、已弃用、许可证)意味着停止。
  • 校验仓库:通过 scripts/check-deps-policy.mjs 检查策略,修复所有 FAIL 行直到 RESULT: PASS;并运行 npx expo install --check、npx expo-doctor、npm run check:fast、npm run check:unused 等。
  • 供应链与许可证审计:审查安装脚本、检查许可证、审计发布包而非锁文件,并手动阅读原生模块带来的原生 SDK。

使用方式

  1. 命名任务:添加、升级、移除、月度检查、带日期例外或依赖门禁失败。
  2. 若尚无 contracts/dependency-policy.json,复制模板并删除应用不会使用的行;若无 .npmrc,复制模板。
  3. 阅读包的策略行及对应参考文档。
  4. 规划:node ${CLAUDE_SKILL_DIR}/scripts/plan-dependency.mjs <pkg>[@<version>] . --online。
  5. 安装前审查:若计划打印 review first step,阅读该脚本并把其固定键写入根 allowScripts。
  6. 严格按打印的安装步骤顺序执行,然后确认 npm approve-scripts --allow-scripts-pending 输出无未审查脚本。
  7. 在同一变更中编写使用该包的代码。
  8. 运行 npx expo install --check、npx expo-doctor 等校验。
  9. 运行 node ${CLAUDE_SKILL_DIR}/scripts/check-deps-policy.mjs . 直到 RESULT: PASS,再运行 npm run -s check:fast 和 npm run -s check:unused。
  10. 按参考文档记录提交。

适用场景

  • Expo/React Native 项目需要严格控制依赖版本和安装位置。
  • 需要供应链安全防护,如 7 天发布年龄等待、安装脚本审查、禁用包列表。
  • 需要许可证合规,只发布允许的许可证或经批准的例外。
  • 多包(npm workspaces)项目需要管理原生模块的单一副本和 peer 依赖。
  • 需要依赖门禁在 CI 中通过,保证每台机器和 CI 构建一致。

限制

  • 该技能面向 Expo 应用,依赖 Expo 的安装与检查机制。
  • 需要 Node.js 和 npm 环境,根 package.json 要求 engines npm >=11.17.0 和 node >=22.18。
  • 策略文件、.npmrc 和门禁脚本需要按模板初始化,缺失或损坏时需从模板恢复。
  • 原生或 pre-1.0 包需要额外的开发构建和预览/发布构建验证。
  • 具体价格、收费、平台支持范围等事实资料未提供。