Skip to content

cli-v3.6.6

Choose a tag to compare

@liguochuan00 liguochuan00 released this 30 Sep 03:07
· 4 commits to main since this release
30238e5

CLI 3.6.6

修复 Windows 下 flow2spec update 永久认为 Core 已是最新(update --core 实际 no-op)的问题。

根因

queryLatestCoreMetadata() 用 npm view <core>@^3.8.2 … 查兼容范围内最新 Core。Windows 下必须 shell: true 才能找到 npm.cmd,而参数只拼接不转义,cmd.exe 把 ^ 当转义符吃掉,查询退化成精确版本 @3.8.2,目标永远等于当前基线。Linux/macOS 与 CI 一直正常,所以此前未暴露。

改法

  • 先 npm view <core> versions --json 列全部版本,在 JS 里按 caret 范围过滤取最大
  • 再对选中的精确版本查 templateVersion(老版本缺该字段时回落到 Core 版本本身)
  • 全程不向 argv 传特殊字符;新增 satisfiesCoreRange()

验证

  • Windows 真实 registry 实测:update --check 正确报告 Core: 3.8.3 -> 3.8.3
  • Windows 等价回放(复刻 test-cli-update 的 mock):^3.8.2 → 3.9.0、^0.2.3 → 0.2.4、--core 生效校验通过、任何调用都不含 ^
  • CI(Node 18/20/22)跑完整 mock 通过;version:check / pack:check 通过

版本

CLI 3.6.5 → 3.6.6;Core 保持 3.8.3、Template 3.8.2,兼容范围仍 ^3.8.2。

本次仅发布 @double-coding/flow2spec@3.6.6。