实施 #3750(把 peer 断言加宽到 README 的 Peer Dependencies 区块)时,为设计区块检测器而普查全仓「peer dependency」措辞得到的越界发现,据实另立。#3750 的面是 packages/*/README.md 的区块,这条在 content/docs,是散文而非区块,越界即停。
事实(复核于 origin/main = d229dfa7b)
packages/data-objectstack/package.json:
"dependencies": {
"@object-ui/core": "workspace:*",
"@object-ui/types": "workspace:*",
"@objectstack/client": "^17.0.0-rc.5",
"@objectstack/spec": "^17.0.0-rc.5"
}
"peerDependencies": {} ← 空
content/docs/utilities/data-objectstack.mdx 三处与之不符:
| 行 |
原文 |
真相 |
| 13 |
npm install @object-ui/data-objectstack @objectstack/client |
client 是普通 dependency,随包解析,读者不必单独装 |
| 16 |
**Note:** The @objectstack/client package is a peer dependency and must be installed separately. |
清单未声明任何 peer;"must be installed separately" 不成立 |
| 456 |
- **@objectstack/client** (peer dependency) - ObjectStack API client |
同上 |
| 458 |
- **react** (peer dependency) - React library |
清单完全没有 react —— 既不是 peer 也不是 dependency |
第 458 行最离谱:react 在该包的 dependencies、devDependencies、peerDependencies 里都不存在。
与 #3750 的关系,以及为什么不在那个 PR 里修
#3750 修的是 11 个包 README 里 **Peer Dependencies:** 区块的行(区块 ↔ 清单逐字比对),并把断言加宽到区块每一行。这条是同族异面:
因此加宽后的门禁依然看不见这一页,这是明确的残留死角而非疏忽。
影响
读者按第 13 行多装一个 @objectstack/client(无害但多余,且可能装出与包内解析不同的版本);按第 458 行去找 react peer 会找不到。属于「文档声明的依赖契约与清单不符」,和 #3750 修的是同一类失真。
修法方向(不预判)
两半可以独立判:
- 文档侧:把三处措辞按清单改为普通 dependency 的描述,删掉不存在的 react 行;
- 或清单侧:若
@objectstack/client 本就应该是 peer(避免版本重复、让宿主统一 client 实例 —— 这在 adapter 类包里是常见且合理的设计),那错的是清单,应把它从 dependencies 移到 peerDependencies,文档反而是对的。
这一半是真正的设计决策,不是机械替换:adapter 包让宿主提供 client 单例通常更正确,但改清单会影响所有消费者的安装面。建议由维护者裁决方向后再派发。
⚠️ 与在飞的 #3774 不相交:#3774 动的是 packages/data-objectstack/src,本条动的是 content/docs/utilities/data-objectstack.mdx(以及可能的 package.json)。
已搜重
data-objectstack peer dependency、objectstack/client peer dependency docs、peerDependencies README drift 三组关键字搜过本仓开放 issue,零命中(其中两组遇 API 限流后重试)。#3750 / #3717 / #3741 均为同族但另一条面。
实施 #3750(把 peer 断言加宽到 README 的 Peer Dependencies 区块)时,为设计区块检测器而普查全仓「peer dependency」措辞得到的越界发现,据实另立。#3750 的面是
packages/*/README.md的区块,这条在content/docs,是散文而非区块,越界即停。事实(复核于
origin/main=d229dfa7b)packages/data-objectstack/package.json:content/docs/utilities/data-objectstack.mdx三处与之不符:npm install @object-ui/data-objectstack @objectstack/client**Note:** The @objectstack/client package is a peer dependency and must be installed separately.- **@objectstack/client** (peer dependency) - ObjectStack API client- **react** (peer dependency) - React library第 458 行最离谱:
react在该包的dependencies、devDependencies、peerDependencies里都不存在。与 #3750 的关系,以及为什么不在那个 PR 里修
#3750 修的是 11 个包 README 里
**Peer Dependencies:**区块的行(区块 ↔ 清单逐字比对),并把断言加宽到区块每一行。这条是同族异面:content/docs/*.mdx,不是packages/*/README.md;^3.0.0vs 清单^4.2.1实错) #3750 新加的区块检测器PEER_BLOCK_HEADING刻意锚定为独占一行的**Peer Dependencies:**,正是为了不把这一页的散文拖进来然后解析失败(这条已写进该 PR 的测试用例)。因此加宽后的门禁依然看不见这一页,这是明确的残留死角而非疏忽。
影响
读者按第 13 行多装一个
@objectstack/client(无害但多余,且可能装出与包内解析不同的版本);按第 458 行去找 react peer 会找不到。属于「文档声明的依赖契约与清单不符」,和 #3750 修的是同一类失真。修法方向(不预判)
两半可以独立判:
@objectstack/client本就应该是 peer(避免版本重复、让宿主统一 client 实例 —— 这在 adapter 类包里是常见且合理的设计),那错的是清单,应把它从dependencies移到peerDependencies,文档反而是对的。这一半是真正的设计决策,不是机械替换:adapter 包让宿主提供 client 单例通常更正确,但改清单会影响所有消费者的安装面。建议由维护者裁决方向后再派发。
packages/data-objectstack/src,本条动的是content/docs/utilities/data-objectstack.mdx(以及可能的package.json)。已搜重
data-objectstack peer dependency、objectstack/client peer dependency docs、peerDependencies README drift三组关键字搜过本仓开放 issue,零命中(其中两组遇 API 限流后重试)。#3750 / #3717 / #3741 均为同族但另一条面。