将现有的NodeJ(node,Express,monodb,..)项目添加到现有的NX monorepo(Angular



有没有人体验过如何将现有NodeJS API添加到现有(Angular(Nx Monrepo?

不幸的是,手册对我帮助不大https://nx.dev/migration/manual

将回购迁移到单回购的过程需要一些手动步骤。我认为没有比这更简单的方法了

假设你的节点项目没有与你当前的monoreo共享文件,这应该是步骤:

  1. 在您的节点repo上,创建一个分支'tomonoreo',并在其中将所有文件移动到与nx文件夹结构匹配的文件夹中,然后将提交推送到其中
  2. 删除您的package.json文件(我们稍后会将其与monorepo的文件合并(
  3. 一旦文件夹与nx文件夹结构匹配,就需要将其合并到monorepo中。从单回购添加其他回购的远程
git remote add node-repo <your git repo's node url>
  1. 在monorepo文件夹中,签出您的master
  2. 运行pull以使节点回购分支在单回购中可用
git pull
  1. 在您的单回购上创建一个新的分支"合并节点回购"。

  2. 将分支node-repo/to-monorepo合并到您的merging-node-repo分支中,保留历史:

git merge node-repo/to-monorepo --allow-unrelated-histories
  1. 推送您的新分支(所有代码及其历史记录现在都将列在这个新分支中(

  2. 从本地单存储配置中删除远程node-repo

git remote rm node-repo
  1. 手动将所有节点repo的原始package.json文件依赖项合并到monoreo的文件依赖项中,并从monoreo运行npm install。以这种方式更新package-lock.json文件。完成后,创建一个提交并推送它。

  2. 最后一步更为棘手。您现在必须手动更新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

最新更新