2012-03-31 12 views
14

मैंने अभी विंडोज़ के लिए node.js स्थापित किया है और यह वास्तव में इसे चलाने के लिए एक हवा था। मैं तो जैसे कई फ़ाइलें एक साथ गठबंधन करने के लिए अपने निर्माण की प्रक्रिया के हिस्से के रूप में उपयोग करना चाहते हैं:विंडोज़ पर Node.js के लिए कार्य निर्देशिका कैसे सेट करें?

// settings 
var FILE_ENCODING = 'utf-8', 
    EOL = '\n', 
    DIST_FILE_PATH = 'dist/myAwesomeScript.js'; 

// setup 
var _fs = require('fs'); 

function concat(fileList, distPath) { 
    var out = fileList.map(function(filePath){ 
      return _fs.readFileSync(filePath, FILE_ENCODING); 
     }); 
    _fs.writeFileSync(distPath, out.join(EOL), FILE_ENCODING); 
    console.log(' '+ distPath +' built.'); 
} 

concat([ 
    'foo/bar.js', 
    'foo/lorem.js', 
    'foo/maecennas.js' 
], DIST_FILE_PATH); 

यह वास्तव में एक आकर्षण की तरह काम करता है। हालांकि यह केवल तभी काम करता है जब मैं अपनी सभी स्क्रिप्ट को नोडजेस निर्देशिका में डालता हूं जो सी: \ प्रोग्राम फ़ाइलें (x86) \ nodejs है और व्यवस्थापक अधिकारों के साथ cmd प्रक्रिया शुरू करें।

लेकिन मुझे अपनी प्रोजेक्ट फ़ाइलों को किसी अन्य निर्देशिका में रखना होगा (डी: \ git \ projectx \) कहें और चलाने में सक्षम होना चाहते हैं: node.exe D: \ git \ projectx \ combine.js। दुर्भाग्य से चीजें इस तरह से काम नहीं करतीं क्योंकि node.exe फ़ाइलों की अपनी निर्देशिका के भीतर देखेगा जो सी: \ प्रोग्राम फ़ाइलें (x86) \ nodejs है। नोडजेस प्रक्रिया शुरू करने के लिए दूर होना चाहिए और इसे दूसरी निर्देशिका का उपयोग अपनी कार्यशील निर्देशिका के रूप में करने के लिए कहना चाहिए, क्या मैं गलत हूं?

अद्यतन

के रूप में किसी को आईआरसी पर बताया। मेरी समस्या का समाधान इतना आसान था। बस cdD:\git\projectx में और फिर node.exe combine.js का उपयोग करें। ताकि अपनी स्क्रिप्ट अंक के अंदर वर्तमान निर्देशिका D:\git\projectx

लिए हालांकि, मैं ल्यूक के जवाब को स्वीकार कर रहा हूँ के बाद से ऐसा लगता है भी सच ;-) होने के लिए यह यह बनाता है

उत्तर

23

आप process.chdir का उपयोग कर वर्तमान कार्यशील निर्देशिका सेट कर सकते हैं, यूनिक्स शैली pathnames का उपयोग कर:

 
process.chdir('/temp/foo'); 

मुझे यकीन है कि ड्राइव उपसर्ग (D:) हालांकि निर्दिष्ट करने का तरीका नहीं है।

+2

बस निर्देशिका स्ट्रिंग के लिए ड्राइव जोड़ें। 'process.chdir ('c:/users'); process.cwd() ' परिणाम: ' 'c: \\ उपयोगकर्ता' –

+0

इसका उपयोग कैसे करें और कहां करें? वास्तव में हमें इस पंक्ति को कहाँ लिखना चाहिए? मैंने इसे हिट और ट्रायल बेस पर लिखा और – Sami

0

वास्तव में यह

process.chdir('D:\\\git\\projectx') 
+0

सफल नहीं हो सका यह (लगभग) इसके ऊपर दिए गए उत्तर के समान है। – matsjoyce

+0

खैर, असल में यह 'process.chdir (' डी: \\ git \\ projectx ') '- 2 के बाद 2 स्लेश' D: ', 3 नहीं – nponeccop

2

है तुम हमेशा __dirname उपयोग कर सकते हैं स्क्रिप्ट आप में हैं की सूची का प्रतिनिधित्व करने के ...

process.chdir(__dirname); 
संबंधित मुद्दे