Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用TFS构建的节点/吞咽_Node.js_Tfs_Gulp_Build Server - Fatal编程技术网

Node.js 使用TFS构建的节点/吞咽

Node.js 使用TFS构建的节点/吞咽,node.js,tfs,gulp,build-server,Node.js,Tfs,Gulp,Build Server,使用web应用程序。我正在研究,我们使用Gulp来编译一些样式表和脚本。这些已编译的文件由web应用程序使用 当我们在本地开发时,我们不需要Gulp来完成完整的编译过程,因为它大约需要50秒 当我们签入TFS时,我们希望构建作为门控签入的一部分进行完整编译 我们的问题是dev-ops不允许我们在构建机器上安装节点 在不安装节点的情况下,我们如何让TFS在签入时运行gulp任务?我想说,这类似于人们在无法sudo时遇到的问题。正在编写至少一个安装节点的选项,因此npm应该为您工作。我用第一个测试它

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

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

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

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


在不安装节点的情况下,我们如何让TFS在签入时运行gulp任务?

我想说,这类似于人们在无法
sudo
时遇到的问题。正在编写至少一个安装节点的选项,因此npm应该为您工作。我用第一个测试它

TL;DR

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

备选方案

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

无论如何,该解决方案要求您对生成计算机拥有足够的访问权限,因为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 

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

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