具有TFS构建的Node / Gulp

时间:2015-03-03 18:34:57

标签: node.js tfs gulp build-server

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

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

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

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

如何在没有安装Node的情况下在签到时执行TFS run gulp任务?

1 个答案:

答案 0 :(得分:2)

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

<强> TL; DR

  

在构建服务器或您的仓库中本地构建node.js,从而npm,并手动运行本地bin文件。缺陷:最后你不认为它是一个安装加上构建任务可能会运行很长时间。

<强>替代

  

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

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

您的起点是您应该在任何依赖项文件夹中安装节点的repo。这可能全部或部分地作为构建机器上的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 

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