递归列表生成无效的 JSON,其中包含独立的工作区锁文件
作者: Stanzilla创建于 2026年9月17日更新于 2026年9月17日
标签type: bugarea: lockfilearea: monorepo
问题
pnpm -r list --json' 当工作空间使用每个项目的锁文件时,会发出单独的 JSON 阵列。 有不止一个选定的项目,stdout不是一个有效的JSON文件,因此JSON.parse'失效。
同样的渲染路径存在于主机上"2c04b22dc84de181586677233563c3ca4d45c2da"的Rustpm v12和TypeScript pnpm v11中.
- 复制
创建此工作空间 :
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? #pnpm -工作空间.yaml 软件包 :
- 包/* 共享WorkspaceLock文件: 假
贾森
//包/项目1/包.json
{"名称":"项目-1","版本":"1.0.0"}贾森 //包/项目2/包.json {"名称":"项目2""版本":"1.0.0"}
运行 :
嘘
pnpm - r -- filter "project- *" 列表 - json - 深度 - 1预期
一个包含两个项目对象的JSON阵列. 当安装的项目在单独的锁文件中有不同的依赖关系时,也必须保持同样的依赖。
实际数
每个工程都作为完整的阵列提供,这些阵列与白空间相接:`[{.}][{.}'。
已安装的项目回归还暴露出相关的Rust v12问题:每个项目加载器保留了工作空间-根模块目录. 因此,依赖性路径指向根部的“node modules”和“--long”报告“[无法找到关于这种依赖的额外信息]”下,尽管在选定的项目下存在一揽子清单。 装载机需要与安装相同的每个项目配置,包括 " 包件接头 " 覆盖。
来源和拟议范围
- [Rust递归性上市](https://GitHub.com/pnpm/pnpm/blob/2c04b22dc84de 18158667233563c3ca4d45c2da/pnpm/crates/cli/cli args/list.rs#L237-L254).
- TypeScript递归性上市
在JSON序列化前收集打出的项目结果. 保留每个工程的自锁文件上下文,所选项目顺序,以及现有的文本/可解析输出. 在两个版本中添加命令级回归,以解析所有 stdout并验证项目及其不同的依赖性.
-- -- . . . 由代理编写(Codex,GPT-6).
内容来源: pnpm/pnpm