Skip to content

自定义 PNPM_HOME 时 pnpm 11 全局布局识别不到(分类器与内联判据同漏) #1127

Description

@deepcoldy

问题

pnpm 11 的全局安装真实布局是:

<PNPM_HOME>/store/v11/links/@/<pkg>/<ver>/<hash>/node_modules/<pkg>

detectGlobalInstallManagersrc/utils/global-install.ts)和 #1122 内联进 postinstall-bin.mjslocationSaysGlobal 都要求路径里含字面量 /pnpm/store/(或 /pnpm/global/)。默认 PNPM_HOME=~/.local/share/pnpm 时路径恰好含 /pnpm/,能识别;但用户改过 PNPM_HOME(如 ~/.pnpm-bin)后:

/root/.pnpm-bin/store/v11/links/@/botmux/3.18.9/x/node_modules/botmux

两边都判 unknown / false → postinstall 不写 launcher → 用户没有 botmux 命令。

实测(喂真实路径给两边):

PNPM_HOME 内联判据 分类器
~/.local/share/pnpm(默认) true pnpm
~/.pnpm-bin(自定义) false unknown
/data/pnpm-global(自定义) false unknown

影响面

不建议现在就加模式

直接匹配 store/v\d+/links/@/botmux/(去掉 pnpm 前缀)会放宽到任何含此片段的路径,安全边界需要先想清楚。建议与 #1123(win32 兜底误判)一起收,统一设计「不依赖字面量路径前缀的 pnpm 识别」。

相关

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions