monorepo 项目如何打破目录结构限制?
使用 pnpm 和 workspace.yaml 实现了 monorepo 后,预定义的目录结构可能会受到限制。例如,要求将多个项目置于 packages/ 目录下,共享子包置于 components/ 目录下。
但是,现有的项目结构和开发流程可能不符合此要求。例如,在 vscode 中打开多个项目界面或引用 react-demo-09 中 components 子包下的代码。
那么,在这种情况下,是否可以使用 pnpm + monorepo 技术打破目录结构限制呢?
答案:
- 遵循 monorepo 原则:monorepo 应该按照其设计方式使用。不能因为习惯而寻求不符合 monorepo 原则的功能。应该在 monorepo 根路径下使用 ide 打开,并以工作空间方式引用组件。
- 复制公共代码:虽然目录命名为 demo,但这并不重要。可以将公共代码复制一份到 /components 目录下。
- 项目间引用:可以在 08 项目中直接安装和引用 09 项目。
- 软链接:建立一个组件目录,用软链接指向统一文件。