pnpm run clean fails on a clean checkout: clean: expected TypeScript outDir to end in /types #7760
Unanswered
shujie2015-a11y
asked this question in
Q&A
Replies: 4 comments 1 reply
|
- "outDir": "lib/desktop-keyboard-test-types",
+ "outDir": "lib/desktop-keyboard-test/types",pnpm run clean
# […]
# clean: removed 284 paths |
1 reply
|
在 477b4f4 上独立复现了同样的失败。确认是 tsconfig.desktop-keyboard-tests.json 的 outDir 未以 /types 结尾,改法与你的一致,pnpm run clean 从 exit=1 变为 removed 329 paths。 |
0 replies
|
已收到这条反馈。 |
0 replies
|
谢谢两位的独立确认——PING0001 的复现路径与 Erquint 的改法都和我这边的实测一致。 补充两点: 1. - "outDir": "lib/desktop-keyboard-test-types",
+ "outDir": "lib/desktop-keyboard-test-types/types",本机 A/B(独立 worktree 里跑真实脚本):改前 2. 现成的一行改动可以直接取用(基于
|
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
现象
干净检出上
pnpm run clean直接失败(master477b4f4205= tagdsh-v0.1.7-rc.2,macOS / node v24.19.0):根因
scripts/clean.ts的buildOutputDirectories()从根tsconfig.json沿projectReferences递归,要求每个 emitting 工程的outDir以/types结尾(唯一例外是native/system/packages/entry/lib),否则抛错;而tsconfig.desktop-keyboard-tests.json(由tsconfig.client.json引用)声明"outDir": "lib/desktop-keyboard-test-types",不满足该约定。为何 CI 没拦住
全仓检索
.github/、scripts/、package.json、Makefile:没有任何 workflow 或脚本调用pnpm run clean(它只出现在AGENTS.md的命令清单里),缺陷只在开发者手工清树时暴露。建议修法(本分支已实现)
把该工程
outDir改为lib/desktop-keyboard-test-types/types,保持 clean 的单一约定不被放宽。全仓检索确认没有消费方读旧路径(grep -rn "desktop-keyboard-test-types"只命中该 tsconfig 自己)。备选修法:在
clean.ts的例外表里显式登记该工程并注明理由(若维护者更想保留目录名)。不建议放宽成「任意 outDir 都接受」——那会削弱 clean 对未知产物的拒绝能力(该能力是清理陈旧包目录的前提)。验证(本机实测,A/B)
在基于该 master 的独立 worktree 内跑真实脚本:
tsx scripts/clean.ts→ exit=1,stderr 即上面的报错(复现);tsx scripts/clean.ts→clean: already clean,exit=0。影响面
仅影响手工
pnpm run clean;不涉及构建产物布局的消费方(无引用),不阻断构建与门禁。可直接拉取的改动
本仓库 Issues 已关闭,我也没有上游写权限,因此改动放在一个 fork 分支上(一行改动):
shujie2015-a11y/deepseek-harness→fix/clean-desktop-keyboard-outdir(commit965b30959e)git fetch https://github.com/shujie2015-a11y/deepseek-harness fix/clean-desktop-keyboard-outdir(我这边用 API 建 PR 被拒:GraphQL
CreatePullRequestpermission denied、REST 404。原因无法从 API 区分是「仓库限制外部 PR」还是「账号受限」;若维护者接受外部 PR,这条分支即为现成改动,分支上pnpm run typecheck与 pre-push 钩子均通过。)All reactions