咨询将4个NextJS项目合并为指定结构Monorepo的方法
合并多个NextJS项目为Monorepo的实操步骤
方式一:保留各项目Git历史(推荐用于需追溯历史的场景)
1. 初始化Monorepo基础结构
mkdir monorepo && cd monorepo git init mkdir -p apps packages/shared/ui
2. 逐个迁移项目(以site为例)
- 添加对应项目的远程仓库:
git remote add site <site项目的Git仓库地址> - 拉取目标分支的代码:
git fetch site main # main替换为项目实际分支名 - 将代码迁移到指定目录并提交:
git read-tree --prefix=apps/site/ site/main git commit -m "迁移site项目至apps/site目录" - 移除临时远程:
git remote remove site
重复上述步骤,分别迁移admin、auth项目到apps/admin、apps/auth目录;迁移ui项目时,将--prefix参数改为packages/shared/ui/即可。
方式二:直接拉取文件(适合无需保留历史的快速场景)
1. 初始化Monorepo基础结构
同方式一的第一步,创建目录并初始化Git仓库。
2. 拉取项目文件
# 迁移site、admin、auth到apps目录 cd apps git clone <site项目地址> site git clone <admin项目地址> admin git clone <auth项目地址> auth # 迁移ui到packages/shared/ui目录 cd ../packages/shared/ui git clone <ui项目地址> .
3. 清理独立Git记录并提交
进入每个拉取的项目目录,删除.git文件夹:
rm -rf apps/site/.git apps/admin/.git apps/auth/.git packages/shared/ui/.git
回到Monorepo根目录提交所有文件:
cd ../../ git add . git commit -m "初始化Monorepo,整合所有项目文件"
两种方式对比
- 保留历史:操作稍繁琐,但完整保留各项目的原始提交记录,便于后续追溯、回滚。
- 直接拉取:操作简单高效,但丢失各项目独立Git历史,仅保留整合后的提交记录。
内容的提问来源于stack exchange,提问作者Bryan
相关产品推荐
相关产品推荐

