shelljs: команда exec npm занимает много времени (ожидает тайм-аут) - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть 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не будет висеть.

...