我正在使用MEAN Stack开始一个新项目。前端和后端位于2个不同的git存储库中,托管在bitBucket上。每个项目/回购都有自己的unit / e2e测试。后端是Restful JSON API,前端是AngularJS SPA。前端项目中提供了一个grunt任务,用于输出客户端代码的优化/缩小版本。
我的想法是首先在客户端代码上运行unit / e2e测试,然后是" grunt deploy"任务,然后以某种方式自动将此grunt任务的结果提交到后端项目/ git repo,运行后端代码的单元测试,最后在Amazon上部署后端项目。
我不太确定如何在Travis或Codeship这样的平台上设置这种项目,因为它使用的是2 GIT repo而不是一个......
如果有人对此类设置有任何经验/建议,那将非常感激。
干杯,
尼科
答案 0 :(得分:0)
尽可能避免使用手工制作的解决方案,例如在存储库中复制/提交文件 - 这只会导致痛苦和维护噩梦。使用标准工具。
处理这些依赖关系的标准方法是使用依赖关系管理工具。在后端,您通常使用您可能已经熟悉的npm来执行此操作 - 您可能正在使用它来提取像Grunt这样的构建工具。
构建前端应用程序时,通常使用Bower。
使用Bower,您可以定义bower.json
文件并在那里列出您的依赖项。在您的情况下,您需要在两个项目中都有bower.json
文件:
bower.json
文件定义了包的名称,版本,最重要的文件等。bower.json
文件定义了依赖项,即您的前端项目。在定义前端项目的依赖关系时,您可以将其指向Bower注册表中的公开包(例如Angular),或指向Git仓库(这可能是您正在寻找的内容) )。您可以将其指向Git标记(例如#1.2.3
),或指向Git分支(例如#master
)。如果您不想,您不需要在公共Bower注册表中注册您的包裹。
您需要在后端项目中添加bower install
作为额外的构建步骤,最好在运行npm install
之后。
再次尝试避免变通方法,尝试坚持使用标准工具。将您的工作分成两个独立的Git回购非常好,这对于保持项目规模可管理是一个很好的做法 - 您只需要使用正确的工具来完成工作。
以下是Bower入门的一些教程链接: