child_process Ошибки появления ENOENT (например, exe c) - PullRequest
0 голосов
/ 09 апреля 2020

Я знаю, что есть много людей с такой же проблемой, но я пробовал их все и не смог добиться следующего.

У меня есть следующая функция

let { exec, spawn } = require('child_process');
export const buildServer = async (silent?) => {
    try {
        const child = spawn('ng run boilerplate:server:production;', []);

        child.on('exit', (code) => {
            console.log(`Child process exited with code ${code}`);
        });

        child.stdout.on('data', (data) => {
            console.log(`stdout: ${data}`);
        });

        child.stderr.on('data', (data) => {
            console.log(`stderr: ${data}`);
        });

    } catch (error) { throw error; }
}

Это Basi c реализация spawn. Вот ошибка, которую я получаю

Ошибка: spawn ng run шаблон: сервер: производство; ENOENT

Как выполнить эту команду (ng ...) без буферизации вывода?

Есть ли какие-либо альтернативы, о которых вы знаете?

1 Ответ

0 голосов
/ 09 апреля 2020

Я наконец столкнулся с этой статьей https://medium.com/edge-coders/node-js-child-processes-everything-you-need-to-know-e69498fe970a

Теперь моя функция работает следующим образом.

export const stream = async (cmd: string, silent?) => {
    if (!silent) { console.log("[running] ".gray, `${cmd}`.green.bold); }
    try {
        const child = spawn(cmd, {
            stdio: 'inherit',
            shell: true
        });

    } catch (error) { throw error; }
}
...