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 

Существует множество путей решения, которые могут привести к тому же результату, но вращаются вокруг некоторой идеи, как показано выше.

Другие вопросы по тегам