Node.js 使用TFS构建的节点/吞咽
使用web应用程序。我正在研究,我们使用Gulp来编译一些样式表和脚本。这些已编译的文件由web应用程序使用 当我们在本地开发时,我们不需要Gulp来完成完整的编译过程,因为它大约需要50秒 当我们签入TFS时,我们希望构建作为门控签入的一部分进行完整编译 我们的问题是dev-ops不允许我们在构建机器上安装节点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应该为您工作。我用第一个测试它
在不安装节点的情况下,我们如何让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
有许多解决方案路径可能会导致相同的结果,但都围绕一些想法,如上图所示。他们“不允许”您在一台旨在节省自动化时间的机器上安装关键的开发工具,这是荒谬的。他们的理由是什么?构建服务器应尽可能与开发人员工作站相同。如果开发人员正在使用基于节点的工具,则节点应该位于构建服务器上。故事结束,我支持丹尼尔。你应该将此升级为阻止问题,直到找到能够处理此问题的人为止。