Я создаю систему, которая использует spawn
для запуска команд, как указано в массиве, который считывается из файла. Все работает нормально, когда я использую тестовые команды (например, echo Something
), однако, когда я устанавливаю команду npm install express -save
, вы получаете stdout
, если вводите npm
без каких-либо аргументов.
Вот код, обрабатывающий команды:
var runProcess = function (process, buildDir, callback) {
console.log('Running command: ' + process);
var args = process.split(" ");
var command = args[0];
var proc;
var stdout;
var stderr;
// Set arguments by shifting array
args.shift();
// Spawn the command
if (args.length) {
if (command === 'npm') {
proc = spawn(command, [args, "--color", "always"], {
cwd: buildDir
});
} else {
proc = spawn(command, [args], {
cwd: buildDir
});
}
} else {
proc = spawn(command, [], {
cwd: buildDir
});
}
}
Если в какой-то момент я console.log
проверяю, попадает ли он в нужное место, он отслеживает правильно, но вывод всегда представляет собой npm commands
дамп с информацией об использовании, как будто он не читает аргументы.
[args]
раньше, оно делает то же самое независимо от дополнительных флагов. - person Fluidbyte   schedule 22.02.2014