解决 CesiumJS 1.100 源码开发时 pnpm 不兼容的问题

1.100 版本后, CesiumJS 对源码进行了分包(也就是 workspaces,又一说法 monoreponpm@v7pnpm 都原生支持这种解决方案),使用的是 npm 原生的 workspaces 方案,即在 package.json 中新增字段:

{
  "workspaces": [
    "packages/engine",
    "packages/widgets"
  ]
}

这条字段在搭配使用 pnpm 进行依赖安装时看似没什么问题,但是在执行 gulpprepare 函数(任务)时,会对依赖内的文件进行复制,对于依赖的安装管理,npm 和 pnpm 的策略是不同的,这就会导致有一些依赖的文件复制失败,提示找不到文件的错误。

根据群友 @zouyaoji 的方案,解决方法是开启 .npmrc 配置文件内的 shamefully-hoist=true 选项(设为 true),重新执行:

pnpm install

之后会对根一级的 node_modules 进行重生成,这样就没问题了,可以常规执行 buildbuild-tsbuild-docs 指令进行源代码开发调试。

另外,由于 npm 的 workspaces 方案与 pnpm 不兼容,所以你还可能需要创建一个 pnpm-workspace.yaml 并补齐内容(当然后期官方也许会补齐,说不准呢):

packages:
  - 'packages/engine'
  - 'packages/widgets'
posted @   岭南灯火  阅读(530)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示