Как выполнить серию команд с execa? - PullRequest
0 голосов
/ 11 февраля 2020

Я работаю над сценарием узла, который сделает кое-что с пакетом execa. По сути, я хочу, чтобы этот сценарий изменил каталог на определенный путь, а затем запустил другую команду в этом пути.

Я сделал это так:

execa.command('cd /some/dir && pwd'); 

Но команда pwd не будет выполнена по какой-то причине, хотя это заканчивается успешно.

В чем может быть причина, команда после && не будет выполнена, и есть ли другой способ управления этой задачей?

Спасибо!

1 Ответ

1 голос
/ 11 февраля 2020

Вопрос, который вы должны задать: «Как запустить команду с другим рабочим каталогом?», Который даст вам простое, надежное, кроссплатформенное решение с использованием опции cwd:

execa.command('pwd', { cwd: '/some/dir' });

Если вы вместо этого хотите выполнить sh эту задачу с помощью &&, вы можете сделать это, вызвав оболочку. Это больше от agile и спецификация платформы c:

execa('sh', ['-c', 'cd /some/dir && pwd']);
...