【发布时间】:2014-01-02 07:39:59
【问题描述】:
我想知道如果一个人需要并行处理项目 A、B 和 C,其中 A 依赖于 B,B 依赖于 C,那么完美的工作流程是什么。
目前,我将所有内容都放在一个存储库中,这加快了早期开发。所以我的工作目录是这样的:
/A/
/A/B
/A/B/C
所以A 是推动发展的项目,但这也意味着B 和C 是并行发展的。
但是,我想单独发布 B 和 C 项目,因为它们对其他人非常有用。
但是,我不知道如何在不破坏开发速度的情况下做到这一点。 npm 非常适合分发和依赖管理,但在开发过程中,您绝对不想为了让文件在您机器上的不同文件夹中更新而在互联网上临时移动版本:)
另一方面,您也不想手动复制它们。哎呀,所有这些我必须切换目录才能在 B 上工作,现在将其复制到 /A/B 很可怕,而且似乎容易出错。
所以,git submodule 似乎是答案,因为它本质上正是在实现这一点:您将保持目录布局不变。然后,当您对B 中的文件进行更改时,您可以直接在A 中测试它们,而无需复制某些内容。当你认为它已经准备好时,你可以从三个不同的文件夹中提交和推送。一切都自动进入三个不同的存储库。似乎是天堂,但每个人都讨厌git submodule,原因各不相同。
在处理 grunt 插件时,我遇到了几乎相同的问题。我在它自己的存储库中有 grunt 插件,然后当我处理它时,我必须将它复制到我使用它来驱动开发的项目之一中。然后在一天结束时,我将它复制回 grunt 插件工作目录,进行提交并推送它们。感谢上帝,我不是成千上万个 grunt 插件的作者,所以我可以处理这个问题,但是对于我目前正在从事的这个项目,我肯定想找到一个更好的解决方案。
所以我想知道,答案是什么?
【问题讨论】:
标签: javascript git workflow npm