запустите пакет npm с помощью child_process.exec

#javascript #node.js #npm #exec #child-process

#javascript #node.js #npm #exec #дочерний процесс

Вопрос:

Я сталкиваюсь с некоторым странным поведением при запуске npm pack с использованием child_process.exec метода.

 const { exec } = require('child_process');

function execCommand( command ) {
  exec(
    command,
    ( err, stdout, stderr ) => {
      if ( err != null ) {
        throw err;
      }
      console.log( 'stdout -> ', stdout );
      console.log( 'stderr -> ', stderr );
    }
  );
}

function packProject( projectName ) {
  console.log('Packing Project');
  const distDir = `dist/${projectName}`;
  execCommand('cd "' distDir '" amp;amp; npm pack', {
    encoding: 'utf8'
  });
}

packProject('test-app')
  

Он выполняет обе команды, как и ожидалось, но затем не завершает процесс после запуска пакета npm.

 Packing Project
stdout ->
stderr ->
stdout ->
stderr ->
stdout ->
stderr ->
  

Я не получаю никаких ошибок или предупреждений во время процесса. Только после нажатия Ctrl C. Но я полагаю, это только потому, что процесс был завершен вручную.

 ^Cnpm ERR! code ELIFECYCLE
npm ERR! errno 3221225786