3.4.1 node_modules 查找机制存在一些问题

  • Creator 版本:

  • 目标平台:
    所有

  • 重现方式:

  1. 下载代码 frontend.zip (365.4 KB)
  2. npm install
  3. 打开项目,看到报错:

[Scene] 无法从 pack:///mods/fs/0/node_modules/tsrpc-base-client/index.js 解析出模块 k8w-extend-native。
at ExecutorSystem._throwUnresolved (C:\Program\CocosDashboard\resources.editors\Creator\3.4.1\resources\app.asar\node_modules@editor\lib-programming\dist\editor-systemjs\index.js:133:15)
at ExecutorSystem._resolve (C:\Program\CocosDashboard\resources.editors\Creator\3.4.1\resources\app.asar\node_modules@editor\lib-programming\dist\editor-systemjs\index.js:82:21)
at SystemJS.resolve (C:\Program\CocosDashboard\resources.editors\Creator\3.4.1\resources\app.asar\node_modules@editor\lib-programming\dist\editor-systemjs\index.js:26:23)
at C:\Program\CocosDashboard\resources.editors\Creator\3.4.1\resources\app.asar\node_modules@editor\lib-programming\static\executor\systemjs-bridge\out\index.js:355:37
at Array.map ()
at C:\Program\CocosDashboard\resources.editors\Creator\3.4.1\resources\app.asar\node_modules@editor\lib-programming\static\executor\systemjs-bridge\out\index.js:353:41

经查,是因为 node_modules 出现了这样的目录结构:

|- 项目目录
  |- node_modules
    |- A
      |- node_modules
        |- C
    |- B

NPM 包 A 同时引用了 BC,由于一些原因,出现了上述嵌套的 node_modules 目录结构。
此时,A 可以引用到 C,却无法引用到 B。因为 Cocos 此处只从 A/node_modules 解析所有引用,而未在解析不到时继续解析上层目录。

我看 tsrpc-base-client 包里没有添加 k8w-extend-native 为 依赖


看起来有呀

我看错了哈,我再看下

已经复现,预计 3.5 修复这个问题

1赞

完美
顺带说一下, 遇到这种问题, 可用大佬教的: 项目直接安装C, 可临时解决这问题

:joy: