Node.js 和 TeamCity

标签 node.js plugins gruntjs npm teamcity

我有以下问题:

在我们公司,我们开始了一个新的 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 脚本!

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

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

如果您希望每个项目都位于不同的存储库中,那么您可以使用基本 GruntJS 设置一个部署存储库,并为其他存储库创建子模块。

关于Node.js 和 TeamCity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15291674/

相关文章:

javascript - 带有 grunt-dr-svg-sprites 的 HBS 模板

coffeescript - 将 CoffeeScript 与基本的 Yeoman 项目一起使用。

javascript - 如何使用 Stylus CSS 生成随机颜色?

Node.js - 2 个用户同时输入相同的数据会弄乱数据?

javascript - console.log 和 node.js 中的重定向不起作用?

javascript - Assets 文件夹中的图像未加载我收到 304 错误

eclipse - 在新的 Eclipse 编辑器中实现 "Mark Occurrences"

javascript - 在同一页面上分享这个倍数

javascript - jQuery 插件 - 高亮文本

javascript - 我可以使用通用文件路径用 grunt 预处理 LESS 文件吗?