Skip to content

fix(installer): resolve extensionless types declarations in resolveNonRootPackage (#722) - #758

Open
yaojin3616 wants to merge 1 commit into
V0.12.2from
fix/issue-722-declaration-types-extension-resolution
Open

yaojin3616 wants to merge 1 commit into
V0.12.2from
fix/issue-722-declaration-types-extension-resolution

Conversation

@yaojin3616

Copy link
Copy Markdown
Contributor

解决的问题

修复 #722:在 packages/dsh-desktop-market-installer/generations/installer.mjs 中的 resolveNonRootPackage 处理纯声明包(declarationOnly)时,仅按 manifest.types 字面路径做 existsSync 检测。对于老式或省略扩展名的声明包(例如 @types/retry@0.12.0 中的 "types": "index"),由于磁盘文件名为 index.d.ts,导致检测必然返回 undefined,进而引发 generation peer 校验失败,阻止插件安装/更新。

变更说明

  1. 补齐 TypeScript 声明扩展名探测:为 declarationOnly 分支增加 [declaration, ${declaration}.d.ts, ${declaration}.d.mts, ${declaration}.d.cts] 候选扩展名列表探测。
  2. 新增单元测试回归:在 test/generation-installer.test.ts 的 accepts type packages and subpath exports 测试中加入不带扩展名的声明包({ types: 'index' })验证。

验证

  • npm test -- test/generation-installer.test.ts 全部 24 个测试用例通过。
  • npm run typecheck 干净通过。
  • git diff --check 无异常。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant