使用TFS构buildNode / Gulp

与networking应用程序。 我正在研究,我们使用Gulp来编译一些样式表和脚本。 这些编译的文件被Web应用程序使用。

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

当我们登记到TFS时,我们希望构build完成编译作为门控登记的一部分。

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

我们如何在没有安装Node的情况下在TFS上运行gulp任务?

我可以说这和人们无法申请的问题类似。 Isaac Schlueter正在撰写这个伟大的Gist ,其中至less有一个选项安装节点,因此npm应该为你工作。 我正在testing它与第一个。

TL; DR

在本地生成node.js ,因此在生成服务器上,或在你的回购站手动运行他们的本地bin文件。 缺陷:最后你会认为它是一个安装,加上构build任务可能会运行很长。

替代

让他们为您提供一个基于节点的开源构build服务器,如networking中的Strider 。 为了方便起见,还有一个预先configuration的docker集装箱 。

无论如何,解决scheme要求你有足够的访问权限的build设机,因为一个安装gulp将尝试build立本地代码。 另外python必须安装,因为node.gyp依靠它。

您的起点是您的回购站,您应该在任何依赖文件夹中安装节点。 这可能全部或部分发生在构build机器上的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 

如上所述,有许多解决schemepath可能会导致相同的结果,但围绕某个想法。

Interesting Posts