我能想到的思路:
pnpm + workspace ,但是对于抽离的公共业务组件的 import npm package
要如何优雅处理,例如下图
不用 workspace, 直接用 Inquirer.js+脚本 的方式去读取 packages 里面的每一个项目的 index.ts 启动文件, 所有的依赖都丢到根目录的 package.json 里面,packages 里面的项目都不需要 package.json ,把项目都假想成一个业务模块(每个项目里面都有一个类似于 ReactDom.createRoot 的入口启动项目), 弊端很明显就是 package.json 要维护所有依赖,自己写脚本维护启动和发布
1
ygweric 167 天前
共享组件和模块放在一个 package 中,别的 package 的 package.json 中加 dependence 加入依赖,npm i 后,可以直接引用,不会报错,你红色的错误咋回事
|
2
rookie2luochao OP @ygweric 我还没有给共享组件和模块加 package.json ,别的 package 的 package.json 中用 dependence 加入依赖,那共享组件和模块需要打包成 npm 吗?
|
3
estk 167 天前 via iPhone
我从来不打包,直接调用 ts
包的入口你可以直接写 src/index.ts 之类的,直接用 |
5
ygweric 167 天前
@rookie2luochao 不需要,同一个 monorepo 中即可
|
6
zhx643 167 天前
我是把公共组件单独放一个 common 目录,项目的 CLI 配置文件里加上 common 的别名
这样引入 import xxx from 'common/components/xxx' |
7
rookie2luochao OP @estk 好的,学到了,谢谢哈
|
8
rookie2luochao OP @ygweric okok ,学到了,回去搞一下试试
|
9
mxcins7 167 天前
|
10
FishStars 166 天前
同 9 楼,使用 trubo 或者 lerna 搭配管理 monorepo
|