pnpm install command failed

用户尝试在 Debian 13 Linux 系统上从源码安装 LobeChat(v2.2.7 和 canary 8c7b9cda549634b7875e52e19d303d9dd333c021 均复现),运行 pnpm install 时触发构建失败。

pnpm install command failed

pnpm install command failed

快速结论:这个报错通常发生在从源码构建 LobeChat 时,pnpm install@lobehub/editor 的 postinstall 脚本失败而中断。优先排查是否使用了 pnpm v11(不兼容),应切换回项目要求的 pnpm@10.33.0。

问题场景

用户尝试在 Debian 13 Linux 系统上从源码安装 LobeChat(v2.2.7 和 canary 8c7b9cda549634b7875e52e19d303d9dd333c021 均复现),运行 pnpm install 时触发构建失败。

报错原文

$ pnpm install
...
[WARN] The "pnpm" field in package.json is no longer read by pnpm. The following keys were ignored: "pnpm.onlyBuiltDependencies", "pnpm.overrides", "pnpm.patchedDependencies". See https://pnpm.io/settings for the new home of each setting.
Scope: all 93 workspace projects
...
node_modules/.pnpm/@lobehub+editor@4.18.0_.../node_modules/@lobehub/editor: Running postinstall script...
node_modules/.pnpm/ffmpeg-static@5.3.0/node_modules/ffmpeg-static: Running install script...
 ELIFECYCLE  Command failed.

原因分析

已知构建失败根因是 @lobehub/editor 的 postinstall 脚本在尝试对 Lexical 打补丁时失败,触发 ELIFECYCLE 错误。Issue 评论区指向这是与 #14394 相同的已知问题。

可能原因:用户运行的 pnpm 版本为 v11(从警告 “The ‘pnpm’ field in package.json is no longer read by pnpm” 判断),而项目在 package.json 中明确要求 pnpm@10.33.0。pnpm v11 不读取 onlyBuiltDependenciesoverridespatchedDependencies 等配置,导致依赖解析和构建行为发生偏移,最终使 Lexical 补丁上下文不匹配而失败。

环境排查

  • 操作系统:Debian 13(Other Linux)
  • pnpm 版本:如果出现 The "pnpm" field in package.json is no longer read by pnpm 警告,很可能运行的是 pnpm v11
  • 项目要求:pnpm@10.33.0(由 packageManager 字段指定)
  • LobeChat 版本:v2.2.7 及 canary 8c7b9cda549634b7875e52e19d303d9dd333c021 均复现
  • 依赖:@lobehub/editor@4.18.0(postinstall 脚本失败)

解决步骤

  1. 确认当前 pnpm 版本:运行 pnpm --version 检查版本号。
  2. 切换到正确的 pnpm 版本(可优先尝试):使用 corepack 安装并激活 pnpm@10.33.0
    corepack enable
    corepack prepare pnpm@10.33.0 --activate
  3. 清除缓存后重新安装(建议):删除 node_modulespnpm-lock.yaml,然后再次运行 pnpm install
  4. 检查 canary 分支是否已合并修复:PR #14200 通过锁定 editor 依赖和对齐包管理器版本来修复该问题。如果已合并,拉取最新 canary 代码后可尝试重新安装。

验证方法

执行 pnpm install 后不再出现 ELIFECYCLE Command failed 错误,且无 The "pnpm" field in package.json is no longer read by pnpm 警告,即表示问题已解决。

参考来源

lobehub/lobe-chat #16167

celebrityanime
celebrityanime
文章: 9292

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注