有没有人体验过如何将现有NodeJS API添加到现有(Angular(Nx Monrepo?
不幸的是,手册对我帮助不大https://nx.dev/migration/manual
将回购迁移到单回购的过程需要一些手动步骤。我认为没有比这更简单的方法了
假设你的节点项目没有与你当前的monoreo共享文件,这应该是步骤:
- 在您的节点repo上,创建一个分支'tomonoreo',并在其中将所有文件移动到与nx文件夹结构匹配的文件夹中,然后将提交推送到其中
- 删除您的
package.json
文件(我们稍后会将其与monorepo的文件合并( - 一旦文件夹与nx文件夹结构匹配,就需要将其合并到monorepo中。从单回购添加其他回购的远程
git remote add node-repo <your git repo's node url>
- 在monorepo文件夹中,签出您的master
- 运行
pull
以使节点回购分支在单回购中可用
git pull
在您的单回购上创建一个新的分支"合并节点回购"。
将分支
node-repo/to-monorepo
合并到您的merging-node-repo
分支中,保留历史:
git merge node-repo/to-monorepo --allow-unrelated-histories
推送您的新分支(所有代码及其历史记录现在都将列在这个新分支中(
从本地单存储配置中删除远程
node-repo
git remote rm node-repo
手动将所有节点repo的原始
package.json
文件依赖项合并到monoreo的文件依赖项中,并从monoreo运行npm install
。以这种方式更新package-lock.json
文件。完成后,创建一个提交并推送它。最后一步更为棘手。您现在必须手动更新monorepo的配置文件,以允许nx开始管理它。这就是您问题中的链接可能会有所帮助的地方。完成后,创建一个提交并推送它。
通过这些步骤,您可以将merging-node-repo
分支合并到master中。
我建议你创建一个独立的nx工作区,上面有一个nodejs项目。这有助于你为所有必要的nx配置和依赖项建立一个基线。您可能需要确保您的项目通过nx命令在这个独立的工作区中工作;这样,您将有更好的机会获得正确的单回购配置。
希望这能让你开始。
以下是我编写的一个解决方案,用于将多个repo导入到一个monoreo中,在需要的任何子目录下,同时维护提交历史:
- https://github.com/marcuswestin/monorepo-merge
我还发现了另外两个看起来可能有效的脚本,但我还没有尝试过:
- http://choly.ca/post/git-merge-to-monorepo/
- https://github.com/ksindi/monoreaper