【问题标题】:Node.js and TeamCityNode.js 和 TeamCity
【发布时间】:2013-02-23 20:39:05
【问题描述】:

我有以下问题:

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

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

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

任何帮助将不胜感激

【问题讨论】:

    标签: node.js plugins gruntjs npm teamcity


    【解决方案1】:

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

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

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

    通过这种方式,我获得了很多好处,例如:

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

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

    【讨论】:

      猜你喜欢
      • 2016-04-09
      • 2010-10-19
      • 2010-11-22
      • 2012-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多