我正在使用MEAN Stack开始一个新项目。前端和后端位于两个不同的git存储库中,托管在bitBucket上。每个项目/存储库都有自己的单元/e2e测试。后端是Restful JSON API,前端是AngularJS SPA。前端项目中提供了一个grunt任务,用于输出客户端代码的优化/精简版本。
我的想法是,首先在客户端的代码上运行单元/e2e测试,然后是"grunt deploy“任务,然后以某种方式自动将这个grunt任务的结果提交到后端项目/git repo中,运行后端代码的单元测试,最后在Amazon上部署后端项目。
我不太确定如何在Travis或Codeship等平台上设置这种项目,因为它使用2个GIT repo而不是1个……
如果任何人对这样的设置有任何经验/建议,将不胜感激。
干杯,
尼科
发布于 2015-07-20 14:25:05
尽可能避免手工制作的解决方案,例如跨存储库复制/提交文件-这只会导致痛苦和维护噩梦。为此,请使用标准工具。
处理这些依赖关系的标准方法是使用依赖关系管理工具。在后端,您通常使用npm完成此操作,您可能已经很熟悉了-您可能正在使用它来引入诸如Grunt之类的构建工具。
在构建前端应用程序时,通常使用Bower。
使用Bower,您可以定义一个bower.json文件并在其中列出您的依赖项。在您的示例中,两个项目中都需要一个bower.json文件:
bower.json文件定义包的名称、版本及其最重要的文件等。bower.json文件定义依赖项,即前端项目。在定义对前端项目的依赖时,您可以将其指向Bower注册表中的公共可用包(例如Angular),或者指向Git repo (这可能就是您正在寻找的)。你可以将它指向Git标签(例如#1.2.3),或者指向一个Git分支(例如#master)。如果你不想,你不需要在公共Bower注册表中注册你的包。
您需要在后端项目中包含bower install作为额外的构建步骤,最好是在运行npm install之后。
同样,尽量避免变通,尽量坚持使用标准工具。将你的工作分成两个独立的Git代码库是非常好的,这是保持项目规模可控的一个很好的做法--你只需要使用正确的工具来完成任务。
以下是Bower入门的一些教程链接:
https://stackoverflow.com/questions/31488029
复制相似问题