npm 스크립트를 통해 자식 프로세스를 생성하면 ipc 채널이 손실됩니다.npm 스크립트를 통해 생성 될 때 자식 프로세스에서 부모 프로세스로 메시지 보내기
나는이
if (process.send) { process.send('child') }
같은 자식 스크립트가 그래서 같은 다른 스크립트에서 그것을 산란 경우, 부모 프로세스가 성공적으로
var spawn = require('child_process').spawn
spawn('node', ['child.js'], {stdio: ['inherit', 'inherit', 'inherit', 'ipc'})
spawn.on('message', function (msg) { console.log(msg) })
를 받고 인쇄 메시지 것이다 그러나 나는대로 node child.js
를 정의하는 경우 내 package.json의 npm 스크립트 (예 :
"scripts": {
"child": "node child.js"
}
대신이 작업을 수행하십시오 spawn('npm', ['run', 'child'], {stdio: ['inherit', 'inherit', 'inherit', 'ipc'})
process.send
내 자식 스크립트는 정의되지 않았습니다. 이것은 npm이 프로세스를 생성하고 프로세스가 내 stdio
설정을 상속하지 않기 때문입니다. 아마도이 문제를 해결할 방법이있을 것입니다. npm 스크립트 설명서에는이 주제가 언급되어 있지 않습니다.