[特性需求] pnpm 支持

接到部分开发者反馈:
通过 pnpm 安装的 NPM 依赖,绝大多数无法正常使用。

经查,是由于 pnpm 的子依赖,是放在各包体内部的,例如:

|- project
  |- node_modules
    |- aaa
      |- node_modules
        |- bbb (Cocos 不支持)
  • Creator 版本:3.6.0

  • 目标平台: 所有

  • 重现方式:pnpm add tsrpc-browser

  • 首个报错:

Error: 以 file:///E:/Test/NewProject_3/node_modules/tsrpc-browser/index.mjs 为起点找不到模块 “k8w-extend-native”

原因是 pnpm 安装后为以下目录结构:

|- project
  |- node_modules
    |- tsrpc-browser
      |- node_modules
        |- k8w-extend-native (被 tsrpc-browser 引用,Cocos 不支持此类目录结构,报错)

日常顶~~~~

也要此需求,顶一下

pnpm 用到了符号链接,这个目前无法支持。建议先在项目外部完成各类 *npm 的安装,自己去掉符号链接后再丢到 Cocos 项目中。

补充:已建立工单跟踪 pnpm support · Issue #14051 · cocos/cocos-engine (github.com) 不过 近期版本可能没有计划做了

更新:将会在 3.8.1 支持 :tada:

2赞

补充:对于 3.8.0 以及之前的版本,可配置 pnpm 使用 node-linker = hoisted,详见: .npmrc | pnpm


更新:3.8.1 已支持。