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'
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.cnblogs.com/onsummer/p/16910958.html
内容来源于网络,如有侵权,请联系作者删除!