#15011·pnpm

递归列表生成无效的 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”报告“[无法找到关于这种依赖的额外信息]”下,尽管在选定的项目下存在一揽子清单。 装载机需要与安装相同的每个项目配置,包括 " 包件接头 " 覆盖。

来源和拟议范围

在JSON序列化前收集打出的项目结果. 保留每个工程的自锁文件上下文,所选项目顺序,以及现有的文本/可解析输出. 在两个版本中添加命令级回归,以解析所有 stdout并验证项目及其不同的依赖性.

-- -- . . . 由代理编写(Codex,GPT-6).