7

我有以下问题:

在我们公司,我们开始了一个新的 Web 项目,其中包含很多 .js .css 文件。我们公司是一家 Java 公司,这意味着所有的开发都在:Java/Maven/Team City 进行构建过程。

由于该公司已经在使用 TeamCity,我们也希望将它用于 Web 构建,我们正在尝试在我们的构建过程中引入 Node.js 和 GruntJs。我想知道是否有人像 TeamCity 中的跑步者一样有设置/配置 Node.js 的经验?

最后,我们想要“提交”一个更改然后构建,这个构建将使用 Node.js 运行器完成。我为 TeamCity 找到了以下插件

任何帮助将不胜感激

4

1 回答 1

4

我在 Web 项目中使用 GruntJS 和 TeamCity,其中包含几个站点,例如 API、用户和​​管理员门户以及单元/工作服/集成测试。经过几次原型设计后,我最终决定将所有逻辑放在一个 GruntJS 文件中,以分别构建项目的每个部分。

为此,我向源存储库添加了一个新项目,仅用于部署。在那个项目中,我有我的基础 Gruntfile.js,它只是项目每个部分的子 Grunt 构建过程的入口点。我可以通过 Grunt-CLI 将参数传递给 base 以选择我的构建目标,例如: grunt --target=api (注意:我也传递版本/修订版和其他东西,但为简单起见,我不会深入这个答案)

然后我创建了一个 shell 脚本,它使用所有可能的参数按顺序运行 grunt。最后,在 TeamCity 中创建了构建配置的一个步骤来运行该 shell 脚本!

通过这样做,我获得了很多好处,例如:

  1. 将所有部署逻辑放在源代码控制中,以获得更好的可维护性。
  2. 每个开发人员都可以访问它,甚至可以在本地机器上构建
  3. TeamCity 集成变得如此简单,您也可以轻松地将其移至其他 CI 平台!

如果您希望将每个项目放在单独的存储库中,那么您可以使用基本 GruntJS 设置一个部署存储库,并为其他存储库创建子模块。

于 2013-05-03T17:54:29.413 回答