1、lerna + yarn workspaces 的基本使用
2、基于 Lerna 管理 packages 的 Monorepo 项目最佳实践
3、使用Lerna & Yarn Workspaces 构建mono-repo项目
5、Monorepo 項目管理方案:lerna + yarn workspace / pnpm
6、pnpm + workspace + changesets 构建你的 monorepo 工程
9、Rollup打包工具的使用(超详细,超基础,附代码截图超简单)
11、实用程序包utils - 基于Rollup打包输出各模块文件(二)
13、vue3源码分析——rollup打包monorepo,打包一个或多个
1. nohoist
monorepo 中所有的依赖都会储存在根目录下的 node_modules 中:/monorepo/node_modules
但某些情况下,我们可能需要同一 package 的不同版本。例如:一个 react 项目较老,使用 bootstrap 4。而另一个在开发中的新项目决定使用 bootstrap 5。
此时我们需要修改根目录下的 package.json 文件
{
"name": "monorepo",
"version": "1.0.0",
"license": "MIT",
"private": true,
"workspaces": {
"packages": [
"packages/*"
],
//就是下面这个
"nohoist": [
"**/bootstrap"
]
}
}
可以看到,我们的 workspaces 新增了 nohoist 属性,我们可以在这里添加不需要共享的 packages 的名称。