Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

220
Visualizações
Cómo comunicarse con CLI externas con nodejs

Al interactuar con clis, por ejemplo, tomando npm init , podemos ejecutar el comando y obtener el resultado con el siguiente código

 const { exec } = require('child_process'); exec('npm init', (err, stdout, stderr) => { if (err) { console.error(err) } else { console.log(`stdout: ${stdout}`); console.log(`stderr: ${stderr}`); } });

Pero no podemos pasar el nombre del proyecto, el nombre de la versión, etc. Cómo lograr esto. Por favor, responda con el ejemplo del comando npm init

Gracias por adelantado :)

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Utilice el canal stdin que proporciona cada proceso. Para eso, use el método node child_process.spawn en su lugar:

 const { spawn } = require('child_process'); const npm = spawn('npm', ["init"]); npm.stdout.pipe(process.stdout); npm.stderr.pipe(process.stderr); npm.on("exit", () => { console.log("npm exited"); process.exit(); }); const answers = [ "my-awesome-cli", // package name "0.0.1", // version number "desciprtion", // description "index.js", // entry point "", // test command "", // git reposiroty "", // keywords "Marc Stirner", // author "MIT" // license ]; setInterval(() => { if (answers.length > 0) { // get first item from array let answer = answers.shift(); // print value we pass to npm console.log("Write to npm child:", answer); // write chunk to stdin npm.stdin.write(`${answer}\r\n`); } else { //npm.stdin.end(); console.log("Hit final enter") npm.stdin.write(`\r\n`); } }, 800);

Mi ejemplo genera el comando npm, usa el canal stdin para escribir la respuesta al proceso y canaliza la salida stdout&stderr del comando npm al proceso node.js.

También puede hacer esto con exec , ya que también devuelve un objeto child_process .

Lea más en los documentos de node.js, están muy bien documentados.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda