Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

246
Vistas
Problema al usar child-process vs terminal al ejecutar un comando

Intento ejecutar un comando usando un proceso secundario y no puedo ejecutarlo por ruta absoluta usando nodejs, pero cuando uso la terminal, todo está bien.

¿Porqué es eso?

Mi código está aquí:

 const cp = require('child_process'); const commandExecutor = 'node-install/target/node/yarn/dist/bin/yarn.exe'; const symlinkFolder = 'node-install/target/node/target/symlink'; const workingDirectories = []; Array.from(process.argv).forEach((value, index) => { if (index >= 2) { workingDirectories[index - 2] = value; } }); workingDirectories.forEach(function(workingDirectory) { const argumentsUnlink = 'unlink @item@ --link-folder ' + symlinkFolder + ' --cwd ' + workingDirectory; const unlinkCommand = commandExecutor + ' ' + argumentsUnlink; const execution = cp.exec( unlinkCommand, function (error, stdout, stderr) { console.log(stdout); console.log(error); console.log(stderr); }); execution.on('exit', function (code) { let message = 'Child process exited with exit code ' + code + ' on route ' + workingDirectory; console.log(message); }); });

Un ejemplo de comando es:

node-install/target/node/yarn/dist/bin/yarn.exe unlink @item@ --link-folder node-install/target/node/target/symlink --cwd appointments/target/generated-sources/frontend/

Pero el error que tengo es:

'node-install' is not recognized as an internal or external command, operable program or batch file. Mientras ejecuto el comando desde la terminal, todo está bien.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Uno de los posibles problemas: NodeJs no puede ubicar el archivo por ruta relativa. Puede usar la ruta absoluta de construcción para solucionar esto, algunas opciones para ayudar si la instalación del nodo se encuentra en la raíz de su proyecto (no en la lista definitiva):

  • __dirname , que devuelve el directorio del módulo actual, por lo que si
 node-install/../.. index.js

entonces en index.js podemos usar

 const commandExecutor = `${__dirname}/node-install/target/node/yarn/dist/bin/yarn.exe`;
  • process.cwd() , que devuelve la ruta completa de la raíz del proceso, por lo que si inicia nodejs desde la carpeta que tiene node-install , puede consultar el exe de esta manera:
 const commandExecutor = `${process.cwd()}/node-install/target/node/yarn/dist/bin/yarn.exe`;
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda