解决 CesiumJS 1.100 源码开发时 pnpm 不兼容的问题
1.100 版本后, CesiumJS 对源码进行了分包(也就是 workspaces
,又一说法 monorepo
,npm@v7
、pnpm
都原生支持这种解决方案),使用的是 npm 原生的 workspaces
方案,即在 package.json
中新增字段:
{
"workspaces": [
"packages/engine",
"packages/widgets"
]
}
这条字段在搭配使用 pnpm
进行依赖安装时看似没什么问题,但是在执行 gulp
的 prepare
函数(任务)时,会对依赖内的文件进行复制,对于依赖的安装管理,npm 和 pnpm 的策略是不同的,这就会导致有一些依赖的文件复制失败,提示找不到文件的错误。
根据群友 @zouyaoji 的方案,解决方法是开启 .npmrc
配置文件内的 shamefully-hoist=true
选项(设为 true
),重新执行:
pnpm install
之后会对根一级的 node_modules
进行重生成,这样就没问题了,可以常规执行 build
、build-ts
、build-docs
指令进行源代码开发调试。
另外,由于 npm 的 workspaces 方案与 pnpm 不兼容,所以你还可能需要创建一个 pnpm-workspace.yaml
并补齐内容(当然后期官方也许会补齐,说不准呢):
packages:
- 'packages/engine'
- 'packages/widgets'
分类:
开源GIS/Cesium源码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)