2016-02-28 11 views
5
var childProcess = cp.spawnSync(command, args, { 
    cwd: process.cwd(), 
    env: process.env, 
    stdio: 'inherit', 
    encoding: 'utf-8' 
}); 

childProcess.output हमेशा eq [अशक्त, अशक्त, अशक्त] के साथ child_process.spawnSync पढ़ने के लिएकैसे stdout stdio विकल्प 'इनहेरिट'

process.stdout.write हुक मुझे किसी भी उत्पादन नहीं देता

+0

क्या आपको इसका कोई समाधान मिला है? मुझे एक ही समस्या है, मुझे प्रगति प्रदर्शन को बनाए रखने के लिए 'विरासत' का उपयोग करने की आवश्यकता है, लेकिन मैं 'stdout.write' को हुक नहीं कर सकता हूं या 'डेटा' ईवेंट को सुन सकता हूं ... –

+0

@FranDios मेरा कामकाज पाइप का उपयोग करना है प्रक्रिया आउटपुट को पकड़ने के लिए 'stdio: [0, isOutputNeeded है? 'पाइप': 1, 2], ' –

उत्तर

6

यदि आप 'pipe' का उपयोग नहीं करते हैं तो childProcess.output में आउटपुट नहीं होगा।

var cp = require('child_process'); 

var command = 'echo'; 
var args = ['hello', 'world']; 

var childProcess = cp.spawnSync(command, args, { 
    cwd: process.cwd(), 
    env: process.env, 
    stdio: 'pipe', 
    encoding: 'utf-8' 
}); 

console.log(childProcess.output); // [ null, 'hello world\n', '' ] 

यह sorta थोड़े documentation for child.stdout और अन्य जगहों में इंगित किया गया है, लेकिन यह पूरी तरह से स्पष्ट नहीं है। (हर तरह से, यदि आप इसे बेहतर देखना चाहते हैं, तो the Node.js repo के खिलाफ पुल अनुरोध खोलें।)

+0

इस तरह से मैं बाल_प्रोसेस प्रगति प्रदर्शित कर दूंगा। यह मेरे लिए महत्वपूर्ण है। –

संबंधित मुद्दे