monorepo: workspace
开始
由于自己的一些项目代码抽离出来,做成了 npm package, 随着 package 的增多,npm link 显得明显吃力,要不然就是不断改代码,发包,最初使用的是 npmmirror, 由于有缓存,还要手动进行同步 https://npmmirror.com/package/ (cnpm 网页版同步不行). 后来就在当前项目下使用 npmrc 修改为原来的 npm 地址。
改善
上述是不断踩坑的经历,不知道浪费了多长事件,以前虽然看过 monrepo, workspace, 但没有细看,也没有和自己的使用场景联系上。今天又重新看了以下,确实很好用。
下面使用 workspace 为例,需要 pnpm-workspace.yaml
packages:
packages/*
package.json
建议也加上 workspace 的字段,
注意
- 安装新包的时候需要 加上 -w 参数
- 如果依赖 dist/ 建议 保留 dist / 目录,否则别人 clone 的时候,还要分别进入每个包手动构建。
但是也可以 在 package.json 里面加上一个 prepare 的命令,自动构建 dist, 不过依赖包就多了.