背景
PR #23 的 review 中指出,工具菜单执行更新流程时存在重复查询 npm registry 最新版本的情况。
当前流程大致是:
showToolMenu 在用户选择「更新工具」后调用 updateTool(tool)。
updateTool(tool) 内部会调用 fetchLatestVersion(tool.npmPackageName),用于判断是否需要更新和展示确认信息。
updateTool(tool) 返回后,showToolMenu 又重新调用一次 fetchLatestVersion(tool.npmPackageName) 来刷新菜单中的最新版本状态。
这不会影响正确性,但在 npm registry 网络较慢、不可达或受代理影响时,会造成额外等待和网络开销。
目标
优化工具更新后的版本信息刷新逻辑,避免同一次更新动作中重复查询 npm registry。
可能方案
- 让
updateTool(tool) 返回本次查询到的 latest version,供外层菜单复用。
- 或抽出统一的版本查询/刷新函数,让更新流程和菜单刷新共享结果。
- 保持当前行为语义:更新前仍能判断是否已是最新版本,更新后菜单仍能显示合理的最新版本状态。
验收标准
- 用户选择「更新工具」时,不再因为菜单和 updateTool 各自查询而重复请求 npm registry。
- npm registry 查询失败时,菜单不会进入 abort 重渲染循环。
- 保留或补充对应测试,覆盖更新后版本状态刷新逻辑。
来源
来自 PR #23 的 review 建议。
背景
PR #23 的 review 中指出,工具菜单执行更新流程时存在重复查询 npm registry 最新版本的情况。
当前流程大致是:
showToolMenu在用户选择「更新工具」后调用updateTool(tool)。updateTool(tool)内部会调用fetchLatestVersion(tool.npmPackageName),用于判断是否需要更新和展示确认信息。updateTool(tool)返回后,showToolMenu又重新调用一次fetchLatestVersion(tool.npmPackageName)来刷新菜单中的最新版本状态。这不会影响正确性,但在 npm registry 网络较慢、不可达或受代理影响时,会造成额外等待和网络开销。
目标
优化工具更新后的版本信息刷新逻辑,避免同一次更新动作中重复查询 npm registry。
可能方案
updateTool(tool)返回本次查询到的 latest version,供外层菜单复用。验收标准
来源
来自 PR #23 的 review 建议。