使用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+'" && npm pack', {
encoding: 'utf8'
});
}
packProject('test-app')
它确实按预期执行了两个命令,但是在运行npm pack之后并没有终止该过程。
Packing Project
stdout ->
stderr ->
stdout ->
stderr ->
stdout ->
stderr ->
在此过程中,我没有收到任何错误或警告。仅在按Ctrl + C之后。但是我想这仅仅是因为该过程是手动终止的。
^Cnpm ERR! code ELIFECYCLE
npm ERR! errno 3221225786