Как отловить ошибку ENOENT при порождении дочернего процесса в node.js в Windows без использования «shell: true» - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь создать дочерний процесс, используя spawn, и хотел бы иметь возможность обрабатывать, если "cwd" не найден.Когда он не найден, он выдает ошибку «ENOENT», которую в Windows я могу обнаружить только при запуске процесса со свойством «shell: true».Итак, что я делаю:

const { spawn } = require('child_process')
const childProcess = spawn('MyCommand.exe', [], {
    cwd: path.join(__dirname, 'mypath')
}

childProcess.on('error', (err) => {
    // Handle error here
})

childProcess.on('exit', (code, signal) => {
    // Handle exit event
})

В Windows вышеупомянутое не будет правильно перехватывать исключение ENOENT, если я не сделаю:

const childProcess = spawn('MyCommand.exe', [], {
    cwd: path.join(__dirname, 'mypath'),
    shell: true
}

Если я порождаю с использованием вышеупомянутого,команда cwd или не найдена, событие exit перехватит исключение.

Но я бы очень хотел сделать это без запуска в оболочке.Есть ли способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...