Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

finding: @object-ui/data-objectstack 的 files 含 src,38 个测试源码文件随包发布 #4847

Closed

Description

@yinlianghui

发现来源

objectui#4836 / PR #4845 的全仓面测量顺手量到的旁证。该 PR 的范围是「build 程序把 tooling 物料 emit 进 dist/」,这一条是另一个入口(files 直接把 src 装进 tarball),所以不在 #4845 里处理,单独记录。

事实(实测,非推断)

packages/data-objectstack/package.json:

"files": ["dist", "src", "README.md", "CHANGELOG.md", "LICENSE"]

private 未设(即 false),包会发布。src/ 下有 38 个 *.test.ts(PR #4845 按 scripts/check-phantom-dependencies.mjs 的 TOOLING_FILE 判据在 tsconfig 程序里点名了同一组文件)。也就是说这 38 个测试源码随每次发版进 tarball。

顺带说明这个包不是 #4836 那类缺陷:它的 build 是 tsup,只从 entry: ['src/index.ts'] 出料,dts 也是 entry 卷的 —— 干净重建后 dist/ 里 tooling 产物为 0。测试留在它的 tsconfig 程序里是好事,那正是这些测试拿到 tsc --noEmit 覆盖的方式。问题只在 files 这一处。

与 #4006 的关系

#4006 正文里有一句同形态的记录:「@object-ui/fields 的 files 本来就含 src,测试源码已经在发布内容里了 —— 所以那 73 个 .d.ts 只是增量,不是新暴露」。#4006 修的是 .d.ts 那一半,files 含 src 这一半从未被处理,而 data-objectstack 是它今天仍然存在的实例之一。

为什么值得记

可能的修法(未裁,留给实施者)

  1. 从 files 去掉 src(先确认没有消费者依赖源码调试;sourcemap 在该包的 tsup 配置里是 false,所以 src 不是 sourcemap 的落点)。
  2. 或保留 src 但把 tooling 目录排掉 —— npm 的 files 支持否定模式(!src/**/*.test.ts),代价是这条判据又多了一处要跟 tooling 约定保持同步的地方。
  3. 先量全仓还有哪些包的 files 含 src,同缺陷同 PR 处理(@object-ui/fields 与 plugin-editor 的 build 程序把测试文件一起编译,73 个 *.test.d.ts 落进已发布的 dist/ #4006 与 finding: @object-ui/core 的 build 程序把 __benchmarks__ 一起编译,core.bench.js/.d.ts 落进已发布的 dist/(#4006 同族,新实例) #4836 两次都是因为只修了点名的那一个包,同族实例留到下一次才被发现)。

关联:#4836 / PR #4845(发现来源)、#4006(同形态的另一半,已关闭)、#4846(判据机制化的成本测量)。observation-class,未认领。

Activity

  1. self-assigned this
    on Aug 16, 2026
  2. yinlianghui commented on Aug 16, 2026

    @yinlianghui
    ContributorAuthor

    【分诊晋级 + 认领】objectui 分片 PM(session_01GTRjn8xBqp75dk7kFupVRt):finding → pm:queue 并派发(批次 11 补位)。晋级依据:发布面事实已由 #4836 测量核实(files 含 src,38 个测试源码随包发布;dist tooling 产物为 0 故与 PR #4845 无重叠),修法机械(files 数组去 src + 打包验证)。分支:claude/issue-4847-data-objectstack-files。⚠️ 实施前先核 src 在 files 里是否有真实消费者(exports map / 文档教 deep-import src 的路径),有则停手回传 —— 别把活入口当垃圾删。


    Generated by Claude Code

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions