Node/Gulp со сборками TFS
С помощью веб-приложения. Я работаю над тем, чтобы мы использовали Gulp для компиляции некоторых таблиц стилей и скриптов. Эти скомпилированные файлы используются веб-приложением.
Когда мы разрабатываем локально, у нас нет Gulp, выполняющего полный процесс компиляции, потому что это занимает около 50 секунд.
Когда мы регистрируемся в TFS, мы хотим, чтобы сборка выполняла полную компиляцию как часть закрытой регистрации.
Наша проблема в том, что dev-ops не позволяют нам устанавливать Node на сборочные машины.
Как мы можем заставить TFS запускать задачу gulp при регистрации без установки Node?
1 ответ
Я бы сказал, что это похоже на проблему людей, когда они не могут sudo
, Исаак Шлютер писал этот великий Gist, где по крайней мере один из вариантов установки узла и, следовательно, npm должен работать для вас. Я проверял это с первым.
TL; DR
строить
node.js
и поэтомуnpm
локально, на сервере сборки или в вашем репозитории и запустите их локальные bin-файлы вручную. Недостаток: В конце концов, вы все равно считаете, что это установка, плюс задача сборки может выполняться очень долго.
альтернатива
Позвольте им предоставить вам сервер сборки с открытым исходным кодом, такой как Strider, в вашей сети. Для удобства: также имеется предварительно настроенный док-контейнер.
В любом случае решение требует, чтобы у вас были достаточные права доступа к машине сборки, поскольку при установке gulp будет пытаться собрать собственный код. Также Python должен быть установлен, так как node.gyp полагается на него.
Ваша отправная точка - это ваш репозиторий, где вы должны установить узел в любой папке зависимостей. Все это может произойти полностью или частично в виде сценария оболочки на компьютере сборки.
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
Существует множество путей решения, которые могут привести к тому же результату, но вращаются вокруг некоторой идеи, как показано выше.