2013-06-03 15 views
11

मैं बड़ी सफलता के साथ कुछ सप्ताह के लिए नोड.जेएस और एनपीएम का उपयोग कर रहा हूं और स्थानीय मॉड्यूल स्थापित करने के लिए सर्वोत्तम अभ्यास पर सवाल उठाना शुरू कर दिया है। मैं Global vs Local argument को समझता हूं, हालांकि, मेरे प्रश्न को स्थानीय इंस्टॉल करने के लिए और अधिक करना है। मान लें कि मेरे पास ~/ProjectA/ पर स्थित एक प्रोजेक्ट है जो संस्करण को नियंत्रित करता है और कई डेवलपर्स द्वारा काम करता है। प्रारंभ में जब Node.js और npm के साथ खेल रहा था, तो मुझे डिफ़ॉल्ट स्थानीय स्थापना पथ से अवगत नहीं था और बस डिफ़ॉल्ट टर्मिनल में आवश्यक मॉड्यूल स्थापित किए गए जिसके परिणामस्वरूप ~/node_modules का इंस्टॉलेशन पथ हुआ। इस काम को समाप्त करने के लिए आवेदन करने के लिए परियोजनाओं पर काम करने वाले अन्य सभी डेवलपर्स को अपनी मशीनों पर मॉड्यूल स्थापित करने की आवश्यकता है। यह देखते हुए कि कुछ डेवलपर्स npm install भाग गए थे, मुझे अभी भी आश्चर्य है कि यह उनकी मशीनों पर बिल्कुल काम करता है (मुझे लगता है कि यह how Node.js and require() looks for modules से संबंधित है), लेकिन कहने की जरूरत नहीं है, यह काम करता है।एनपीएम और Node.js को मॉड्यूल के लिए स्थान स्थापित करें

अब यह परियोजना "आसपास के" मंच से पहले हो रही है, मैं प्रोजेक्ट फ़ोल्डर को सही तरीके से सेटअप करना चाहता हूं। तो, मेरा सवाल यह है कि, मॉड्यूल को ~/ProjectA/node_modules पर स्थापित किया जाना चाहिए और इसलिए संस्करण नियंत्रित प्रोजेक्ट फ़ाइलों का हिस्सा बनना चाहिए, या इसे डेवलपर-मशीन विशिष्ट स्थान पर स्थित होना चाहिए ... या क्या यह वास्तव में कोई फर्क नहीं पड़ता?

मैं सिर्फ इस पर एक छोटा "सर्वोत्तम अभ्यास" मार्गदर्शन ढूंढ रहा हूं और अन्य परियोजनाओं को स्थापित करते समय अन्य क्या करते हैं।

+0

https://npmjs.org/doc/developers.html पढ़ें। क्या आपके ऐप में 'package.json' है? –

उत्तर

9

मुझे लगता है कि "सर्वोत्तम अभ्यास" यहां परियोजना फ़ोल्डर के भीतर निर्भरता को रखना है।
लगभग सभी नोड परियोजनाओं को मैंने अब तक देखा है (मैं अब नोड डेवलपर हूं, लगभग 8 महीने हैं) ऐसा करें।

आपको निर्भरताओं को वर्जन को नियंत्रित करने की आवश्यकता नहीं है। यही कारण है कि मैं अपने नोड परियोजनाओं का प्रबंधन है: ताकि हर कोई एक ही काम कर रहे संस्करण हो जाता है,

  1. संस्करणों package.json फ़ाइल में लॉक रखें, या अपनी परियोजना जड़ में npm shrinkwrap आदेश का उपयोग करें।
  2. अपने VCS को node_modules फ़ोल्डर जोड़ें फ़ाइल को अनदेखा (मैं Git का उपयोग, इसलिए मेरा .gitignore है)
  3. खुश रहो, बस हो गया!
+6

यह सुनिश्चित करने के लिए कि सभी के पास निर्भरता के बिल्कुल समान संस्करण हैं, आपको 'npm shrinkwrap' का उपयोग करना चाहिए https://npmjs.org/doc/shrinkwrap.html –

+0

उत्तर में जोड़ा गया, धन्यवाद – gustavohenke

+1

तो ऐसा लगता है जैसे मैं हूं दायीं पटरी। संस्करण नियंत्रण से '' node_modules'' को बाहर निकालने के लिए तार्किक लग रहा था, लेकिन मैं स्पष्ट नहीं था कि मैं फिर सभी के पैकेज कैसे प्रबंधित करता हूं। ऐसा लगता है कि यह 'package.json'' फ़ाइल या' 'npm shrinkwrap' 'कमांड के माध्यम से है और वह गायब लिंक था। सहायता के लिए धन्यवाद! – Sanuden

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