我一直在尝试使用Codeship和Heroku来持续部署我目前正在编写的AngularJS应用程序.该应用程序是使用Yeoman创建的,并使用bower和grunt.最初我认为这似乎是一个非常好的设置,因为Codeship可以免费使用,我很快就可以配置它来构建我的AngularJS项目,并且它提供了在构建之后添加部署步骤的能力.甚至有许多PaaS提供商可供选择(Heroku,S3,Google App Engine等).然而,我似乎已经变得有点困难,让应用程序在Heroku上运行.
问题始于所有文档都建议我从.gitignore中删除/ dist路径,以便将此目录发布到Heroku post build.这主要来自谈论从本地机器发布到Heroku的文档,但我认为这无论如何都是Codeship所做的.我不想这样做,因为我不相信我应该检查构建输出到源代码控制. / dist文件夹被添加到.gitignore有充分的理由.此外,这种方式在某种程度上打败了CI服务器,因为我可能只是从我的机器上推出最新版本.
在进行了一些挖掘之后,我发现我可以在我的packages.json文件中添加一个postinstall步骤,例如bower install&& grunt构建将重新运行Heroku上的构建,因此重新填充所有的bower依赖项(他们希望我签入源控件的其他东西!)和dist目录.
在尝试了这个之后,很明显我需要在packages.json中添加bower和grunt作为依赖项,这意味着将它们从devDependencies移动,这是它们应该属于的地方!
所以我现在似乎被卡住了.我想要做的就是发布我的构建工件(/ dist)依赖项(/ bower_components)和将运行站点的server.js文件.有谁知道如何使用Heroku和Codeship实现这一目标?或者,任何人都可以使用不同的工具取得任何成功.我正在寻找免费的东西,我愿意接受它不会生产稳定(不会扩展到多个服务器等),但现在这很好,因为我想做的就是不断部署应用程序内部测试,并能够与我的团队的非技术成员分享输出,以便我们可以讨论我们要优先考虑的功能等.
任何建议将不胜感激.
谢谢