【问题标题】:Node/Gulp with TFS builds使用 TFS 构建的节点/Gulp
【发布时间】:2015-03-04 07:32:46
【问题描述】:

使用网络应用程序。我正在努力,我们使用 Gulp 来编译一些样式表和脚本。 Web 应用程序使用这些编译的文件。

当我们在本地开发时,我们没有让 Gulp 完成完整的编译过程,因为它大约需要 50 秒。

当我们签入到 TFS 时,我们希望构建作为门控签入的一部分进行完整编译。

我们的问题是 dev-ops 不允许我们在构建机器上安装 Node。

如何在不安装 Node 的情况下让 TFS 在签入时运行 gulp 任务?

【问题讨论】:

  • 荒谬的是,他们“不会让”您在一台旨在成为自动化节省时间的机器上安装关键的开发工具。他们的理由是什么?构建服务器应尽可能与开发人员工作站相同。如果开发人员使用基于节点的工具,节点应该在构建服务器上。故事结束。
  • 我支持丹尼尔。您应该将此问题升级为一个阻塞问题,直到您找到可以处理它的人。

标签: node.js tfs gulp build-server


【解决方案1】:

我想说这类似于人们无法sudo 时遇到的问题。 Isaac Schlueter 正在写 this great Gist,其中至少有一个安装节点的选项,因此 npm 应该适合你。我正在用第一个测试它。

TL;DR

在本地、构建服务器或您的存储库中构建 node.jsnpm,并手动运行其本地 bin 文件。缺陷:最终你会认为它是一个安装,而且构建任务可能会运行很长时间。

替代方案

让他们在您的网络中为您提供一个基于节点的开源构建服务器,例如 Strider。为方便起见:还有一个预配置的docker container

无论如何,该解决方案要求您对构建机器有足够的访问权限,因为 gulp 安装将尝试构建本机代码。还必须安装 python,因为 node.gyp 依赖它。

你的起点是你的仓库,你应该在任何依赖文件夹中安装节点。这可能全部或部分作为构建机器上的 shell 脚本发生。

mkdir deps && cd $_
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-   components=1
cd node-v0.12.0
./configure
make install
curl https://www.npmjs.org/install.sh | sh

这应该会为您呈现如下所示的内容。

.
├── node_modules
├── deps
|   └── node-v0.12.0
├── client
|   ├── scss
|   |   └── somestyle.scss
|   ├── css
|   |   └── somestyle.css
|   ├── footer.html
|   └── header.html
├── Gulpfile.js
├── app.js
├── package.json

现在从项目根目录运行。

# local npm install ...
./deps/node-v0.12.0/deps/npm/bin/npm-cli.js install gulp
# and to run your Gulpfile default task
./node_modules/gulp/bin/gulp.js 

如上图所示,有许多解决方案路径可能会导致相同的结果,但都围绕着某个想法。

【讨论】:

    猜你喜欢
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多