मैं (विंडोज 7 पर npm install
द्वारा प्रभावित करने के लिए एक rm -rf node_modules
पीछा spawn
पाने के लिए कोशिश कर रहा हूँ, n एक्स आदेश एक के सौजन्य से पारदर्शी रूप से स्थापित CygWin। सभी n x आदेश कमांडलाइन पर ठीक हल करें)।NodeJS के अंडे का प्रयोग का कारण बनता है "अज्ञात विकल्प -" और "[त्रुटि: अंडे ENOENT]" त्रुटियों
मैं शुरू में इस exec
का उपयोग कर किया था, लेकिन stdout/stderr जानकारी को पकड़ने के लिए के रूप में यह हुआ चाहता था, इसलिए मैं लगा रहा spawn
का उपयोग करेंगे, और कहा कि उपयोग करने के लिए कोड दुबारा लिखा। हालांकि, यह सब कुछ तोड़ देता है।
var spawn = require("child_process").spawn,
child = spawn("rm", ["-rf", "node_modules"]);
child.stdout.on('data', function (data) { console.log(data.toString()); });
child.stderr.on('data', function (data) { console.log(data.toString()); });
child.on('error', function() { console.log(arguments); });
बहरहाल, यह निम्न त्रुटि उत्पन्न करता चल:
rm
आदेश, फिर से लिखा, इस बन गया
rm: unknown option -- ,
Try `rm --help' for more information.
npm
आदेश, फिर से लिखा, इस बने:
var spawn = require("child_process").spawn,
child = spawn("npm", ["install"]);
child.stdout.on('data', function (data) { console.log(data.toString()); });
child.stderr.on('data', function (data) { console.log(data.toString()); });
child.on('error', function() { console.log(arguments); });
हालांकि, इसे चलाने से फॉलो उत्पन्न होता है कारण त्रुटि:
{
'0': {
[Error: spawn ENOENT]
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'spawn'
}
}
मैं कैसे अंडे एक ही आदेशों को ठीक exec
का उपयोग कर काम के बिना यह हर जगह त्रुटियों ऊपर फेंक चलाने कैसे करूं? और यह क्यों काम नहीं करता है? एपीआई, http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options पढ़ना, ऐसा लगता है कि यह ठीक है कि किसी को स्पॉन का उपयोग कैसे किया जाता है ...
एक '.cmd' फ़ाइल [लगभग एक ही चीज़] है (http://stackoverflow.com/questions/148968/windows-batch-files-bat-vs-cmd) लेकिन काफी नहीं। – tadman
आप 'exec (" npm इंस्टॉल ... ") का उपयोग कर सकते थे 'जो वास्तव में उन विंडो पर काम करता है जहां' spawn' विफल रहता है। हालांकि 'exec' आपको लाइव स्टडआउट/stderr डेटा (AFAIK) नहीं देगा। –
नहीं मैं नहीं कर सका; जैसा कि आप इंगित करते हैं, निष्पादन में stdout और stderr हैंडलिंग नहीं है, और लॉग के बिना एक npm इंस्टॉल बहुत बेकार है। –