使用网络应用。我正在努力,我们使用Gulp编译一些样式表和脚本。这些编译的文件由Web应用程序使用。
当我们在本地开发时,我们没有Gulp执行完整的编译过程,因为它需要大约50秒。
当我们登记到TFS时,我们希望构建作为门禁签到的一部分进行完整编译。
我们的问题是dev-ops不允许我们在构建机器上安装Node。
如何在没有安装Node的情况下在签到时执行TFS run gulp任务?
答案 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
如上所示,有许多解决方案路径可能导致相同的结果,但围绕着一些想法。