Estoy usando este código para intentar generar un proceso secundario que necesita ejecutar un script.
const child = require('child_process').spawn; const path = require('path'); const script = path.format({dir: __dirname, base: 'myscript.js'}); child('node', [script], { cwd: __dirname, env: { TEST_USERNAME: 'myuser', TEST_PASSWORD: 'mypassword' } }).on('error', (error) => { console.log(error); }); Recibo este error cuando intento ejecutar mi script index.js
Error: spawn node ENOENT at Process.ChildProcess._handle.onexit (node:internal/child_process:276:19) at onErrorNT (node:internal/child_process:476:16) at processTicksAndRejections (node:internal/process/task_queues:80:21) { errno: -2, code: 'ENOENT', syscall: 'spawn node', path: 'node', spawnargs: [ '/Users/dev/Desktop/cli-training/demo.js' ] }ACTUALIZAR
Estoy tratando de ejecutar el script secundario después de que inquirer.js haya planteado algunas preguntas al usuario. ¿Puede ser este el problema? He notado que el proceso hijo no se ejecutará. Dentro de mi script hijo tengo este código
const { IgApiClient } = require('instagram-private-api'); const chalk = require('chalk'); console.log(chalk.magenta('Starting child script')); const ig = new IgApiClient(); console.log(process.argv);¿Cómo puedo arreglarlo?
Si desea ejecutar el binario del nodo en un proceso secundario, es mejor consultar su ruta completa, puede encontrarla con process.execPath
esto debería solucionar tu problema
child(process.execPath, [script], { cwd: __dirname, env: { TEST_USERNAME: 'myuser', TEST_PASSWORD: 'mypassword' } }).on('error', (error) => { console.log(error); });