Я бы сказал, что это похоже на проблему у людей, когда они не могут sudo
. Isaac Schlueter писал this great Gist, где, по крайней мере, один из вариантов установки узла и, следовательно, npm должен работать на вас. Я тестировал его первым.
TL; DR
Построить node.js
и, следовательно, npm
локально, на сервере сборки или в свой репозиторий и запустить их местные БИН-файлы вручную. Недостаток: в конце концов вы считаете, что это установка, так или иначе задача сборки может работать очень долго.
Alternative
Пусть они обеспечивают вам узел на основе открытого исходного сборки сервера, как Strider в вашей сети. Для удобства: есть также предварительно сконфигурированный docker container.
Как бы то ни было, решение требует наличия достаточных прав доступа к строительной машине, поскольку установка 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
Есть много решений пути, которые могут привести к тому же результату, но вращаются вокруг какой-то идеи, как показано на рисунке выше.
Нелепо, что они «не позволят» установить на компьютере машину критического разработчика, которая предназначена для экономии времени автоматизации. В чем их причина? Сервер сборки должен быть как можно ближе к рабочей станции разработчика. Если разработчики используют узловые инструменты, узел должен находиться на сервере сборки. Конец истории. –
Я второй Даниэль. Вы должны эскалировать это как проблему блокировки, пока не дойдете до того, кто сможет справиться с этим. –