У меня есть git-hook, который должен сделать предварительную версию npm, если что-то новое подтолкнуло к мастеру.
Итак, чтобы быть независимым от среды, я решил использовать для этого Nodejs.
Сначала я попытался поиграть с child_process (spawn и exec), но потом я нашел shelljs, который на самом деле мне и нужен.
#! /usr/bin/env node
var shell = require("shelljs");
shell.set('-e');
var branch = shell.exec('git rev-parse --abbrev-ref HEAD').stdout;
if (branch.trim() == "master") {
var prerelease = shell.exec('npm version prerelease').stdout;
console.log('prerelease: ' + prerelease);
shell.exec('git push --no-verify');
console.log('done');
}
shell.exit(0);
Моя проблема в том, что скрипт всегда зависает при выполнениипредварительной версии npm, хотя был показан индикатор того, что он закончил (Выполнено в 5.80 с).Процесс ожидает истечения времени ожидания и возвращается с журналами, которые он буферизовал в этом процессе.
$ git push
husky > pre-push (node v8.11.2)
master
yarn run v1.5.1
$ npm version prerelease
v1.0.0-55
Done in 5.80s.
prerelease: yarn run v1.5.1
$ npm version prerelease
v1.0.0-55
Done in 5.80s.
To https://git.repository.com/dummy/dummyproject.git
34e3bg3..9cf5241 master -> master
Кто-нибудь имеет представление о том, что я могу сделать, кроме установки более низкого времени ожидания?
забавно то, что это происходит только с вызовами npm.Замена предварительной версии npm на npm -v также зависает до истечения времени ожидания.
РЕДАКТИРОВАТЬ: Если я вызываю скрипт через CLI (я использую git bash) напрямую (узел script.js), выполнение предварительной версии npmне будет висеть.