monorepo 跨项目共享组件和模块,有经验的同学交流一下各种实现思路和优缺点

18次阅读

共计 364 个字符,预计需要花费 1 分钟才能阅读完成。

  • 主要考虑项目业务的 monorepo 场景
  • 开源多个 npm 包的 monorepo(通过 pnpm + workspace 可以很好的管理,包括 npm 相互依赖的 link 和版本自动更新)

我能想到的思路:

  1. pnpm + workspace,但是对于抽离的公共业务组件的 import npm package 要如何优雅处理,例如下图
    monorepo 跨项目共享组件和模块,有经验的同学交流一下各种实现思路和优缺点

  2. 不用 workspace, 直接用 Inquirer.js+ 脚本 的方式去读取 packages 里面的每一个项目的 index.ts 启动文件,
    所有的依赖都丢到根目录的 package.json 里面,packages 里面的项目都不需要 package.json,把项目都假想成一个业务模块(每个项目里面都有一个类似于 ReactDom.createRoot 的入口启动项目), 弊端很明显就是 package.json 要维护所有依赖,自己写脚本维护启动和发布

正文完
 0