2013-07-29 3 views
7

मुझे एक नोड ऐप मिला है जिसे मैं हरोकू में तैनात कर रहा हूं। उनके दस्तावेज़ कहते हैं कि यह check in your node_modules directory (यानी गिटिग्नोर नहीं है) के लिए सबसे अच्छा अभ्यास है, तेजी से तैनाती और देव/प्रोड समानता के लिए।क्या देवता निर्भरताओं के लिए एक अलग नोड_मोड्यूल फ़ोल्डर होना संभव है?

मेरी package.json में, मैं devDependencies (ज्यादातर ग्रंट प्लगइन्स और उनके सभी deps) और कुछ नियमित रूप से उत्पादन dependencies एक्सप्रेस जैसी का भार मिल गया है। Heroku केवल उत्पादन deps की जरूरत है। मैं अपने सभी देव देवताओं में जांच नहीं करना चाहूंगा, क्योंकि वे लगभग 50 एमबी तक आते हैं।

क्या आपके लिए dev deps के लिए एक अलग फ़ोल्डर रखने का कोई तरीका है, उदा। node_modules_dev? यदि यह संभव था, तो मैं अपने .gitignore पर node_modules_dev जोड़ सकता था, और हेरोकू की सलाह के अनुसार नियमित उत्पादन node_modules निर्देशिका में जांच सकता हूं।

क्या ऐसा करने का कोई तरीका है? या क्या आप ऐसा करने का एक और तरीका सोच सकते हैं जो मैं करने की कोशिश कर रहा हूं?

+1

मुझे भी जानना अच्छा लगेगा। मैं वर्तमान में .gitignore में देव मॉड्यूल जोड़ रहा हूँ। –

+0

यदि आप मैन्युअल रूप से एनपीएम का उपयोग कर रहे हैं, तो एक --prefix के साथ ऐसा करने का एक तरीका है। जब आप 'npm install' चलाते हैं, तो आप उपसर्ग क्या नियंत्रित कर सकते हैं, और आपके मॉड्यूल को आपके द्वारा निर्दिष्ट फ़ोल्डर से इंस्टॉल किया जाएगा। Packages.json और Heroku के साथ, यह मदद नहीं कर सकता, हालांकि। – Slavo

उत्तर

1

यदि आप उन्हें किसी भी तरह से जांचने में कोई फर्क नहीं पड़ता है, और आपकी एकमात्र चिंता परिणामस्वरूप स्लग आकार (यानी: आपके गिट रेपो आकार या हेरोोकू में उस रेपो का स्थानांतरण नहीं है), तो बस .slugignore पर प्रासंगिक node_modules जोड़ें ।

डॉक्स: Ignoring files with .slugignore

+0

धन्यवाद, '.slugignore' से अवगत नहीं था। स्लग आकार मेरी मुख्य चिंताओं में से एक था, हाँ – callum

2

मैं अपनी फाइलें बनाने, परीक्षण करने और तैनात करने के लिए एक सीआई सर्वर का उपयोग करता हूं - इसलिए मैं एक समान समाधान की तलाश में था जो मुझे अतिरिक्त निर्भरताओं को तैनात करने और/या हेरोोक पर फिर से निर्माण करने की आवश्यकता से रोक देगा।

मेरे सभी परीक्षण चलाने के बाद, मैं npm prune --production चलाता हूं, जो devDependencies को node_modules से हटा देता है, और फिर मैं परिणाम को हेरोोकू में धक्का देता हूं।

कोई अतिरिक्त फाइल सर्वर पर नहीं जाती है, और तैनाती के समय बहुत तेज़ होते हैं क्योंकि हरोकू आमतौर पर गुलप/ग्रंट प्लगइन्स में पाए जाने वाली सभी बाइनरी बनाने से बचाता है।

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