我有以下问题:
在我们公司,我们开始了一个新的 web 项目,其中有很多 .js .css 文件。 我们公司是一家 Java 公司,这意味着所有开发都是在以下环境中完成的:用于构建过程的 Java/Maven/Team City。
由于公司已经在使用 TeamCity,我们也想将它用于 Web 构建,我们正尝试在我们的构建过程中引入 Node.js 和 GruntJs。我想知道是否有人有像 TeamCity 中的运行者一样设置/配置 Node.js 的经验?
最后,我们要“提交”更改,然后进行构建,此构建将使用 Node.js 运行器完成。我发现以下 plugin对于 TeamCity。
任何帮助将不胜感激
最佳答案
我在 Web 项目中使用 GruntJS 和 TeamCity,其中包含几个站点,例如 API、用户和管理门户以及单元/Smock/集成测试。经过几次原型(prototype)设计后,我最终决定将所有逻辑放在一个 GruntJS 文件中,以分别构建项目的每个部分。
为此,我向源存储库添加了一个新项目,仅用于部署。在那个项目中,我有我的基础 Gruntfile.js,它只是项目每个部分的子 Grunt 构建过程的入口点。我可以通过 Grunt-CLI 将参数传递给 base 以选择我的构建目标,例如:grunt --target=api这个答案)
然后我创建了一个 shell 脚本,它按顺序运行带有所有可能参数的 grunt。最后在 TeamCity 的构建配置中创建了一个步骤来运行该 shell 脚本!
通过这样做,我获得了很多好处,例如:
- 将所有部署逻辑置于源代码控制中以提高可维护性。
- 每个开发人员都可以访问它,甚至可以在本地机器上构建
- TeamCity 集成变得如此简单,您还可以轻松地将其移动到其他 CI 平台!
如果您希望每个项目都位于不同的存储库中,那么您可以使用基本 GruntJS 设置一个部署存储库,并为其他存储库创建子模块。
关于Node.js 和 TeamCity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15291674/