child_process.spawnSyn c in Node.js (Typescript) не работает на Windows - PullRequest
1 голос
/ 29 марта 2020

В настоящее время я разрабатываю расширение VSCode, работающее на Windows с Typescript. Ожидаемый результат:

  • Открывается один экран командной строки (оболочка), выполняется все необходимые шаги в файле cmd на том же экране и, когда команды завершаются, удаляет файлы кэша. когда окно закрыто пользователем.

  • когда все задачи завершены, окно все еще открывается.


Вот мой код:

 const command = `cd ${cmdPath} && start /WAIT ${cmdfile} && exit`;
 const option = { shell: true, detached: true }
 child_process.spawnSync(command, option);
 if (isExistFile(cmdfile)) {
    fs.unlinkSync(cmdfile)
 }
 // something to be deleted...

Работает только один раз. Это означает, что, когда пользователь попробовал это снова, ничего не произошло.

Я думал, что процесс, который выполняет команду «START», был оставлен, и добавил команду «exit», но тщетно. Я не уверен, почему это работает только один раз.

Итак, я попробовал другой код следующим образом: (Я изменил «START» на «CALL».)

const command = `cd ${cmdPath} && call ${cmdfile} && exit`;
const option = { shell: true, detached: true }
child_process.spawnSync(command, option);
if (isExistFile(cmdfile)) {
   fs.unlinkSync(cmdfile)
}
// something to be deleted...

Этот код работает почти идеально, но не соответствует требованию, чтобы экран оставался открытым.

Мне интересно, пропустил ли я параметр child_process.spawnSyn c или команду. Не могли бы вы помочь мне?

...