2012-11-19 14 views
16

स्थापित करने js मैं एक घुरघुराना घुरघुराना साथ जावास्क्रिप्ट परियोजना का निर्माण कर रहा हूँ, और मैं एक package.json फ़ाइल कि तरह दिखता है:घुरघुराना संकुल

{ 
    ... name, author, etc here ... 

    "dependencies": { 
     "grunt-html":"0.2.1" 
    } 

} 

मैं स्थापित करने के लिए घुरघुराना-एचटीएमएल npm install चला सकते हैं और इस काम करता है बस ठीक। लेकिन जब मैं नई निर्भरता जोड़ता हूं, तो टीम के सभी डेवलपर्स को npm install को फिर से चलाने के लिए पता होना चाहिए। क्या ऐसे किसी भी पैकेज को स्वचालित रूप से स्थापित करने का कोई तरीका है जिसे अभी तक इंस्टॉल नहीं किया गया है? क्या मुझे यह सुनिश्चित करने के लिए हमेशा अद्यतित एनपीएम इंस्टॉल करना चाहिए कि मैं अद्यतित हूं?

उत्तर

26

हाँ npm install आईएमओ का सबसे आसान तरीका है। अन्य npm कमांड से परिचित सभी को प्राप्त करना प्रबंधन को डीपीएस को भी आसान बनाता है। जैसे:

  • npm ls वर्तमान में स्थापित मॉड्यूल को सूचीबद्ध करने के लिए।
  • या --save ध्वज यानी npm install grunt-html --save पैकेज और संस्करण को अपने package.json में स्थापित और सम्मिलित करने के लिए।
  • npm prune मॉड्यूल को हटाने के लिए आपके package.json में शामिल नहीं है। निर्भरता का प्रबंधन करने के

अन्य तरीकों से अपने भंडार में node_modules फ़ोल्डर प्रतिबद्ध करने के लिए npm install चलाने के लिए होने से अन्य devs से बचने के लिए कर रहे हैं। या अधिक जटिल परियोजनाओं के लिए विशिष्ट संस्करणों पर निर्भरताओं को लॉक करने के लिए npm shrinkwrap का उपयोग करने पर विचार करें: npm shrinkwrap docs

+0

ऐसा लगता है कि इस कारण से node_modules को करना एक अच्छा विचार हो सकता है। इस पर आपके क्या विचार हैं? –

+0

मैं परियोजना के आधार पर तीन तरीकों में से एक का उपयोग करता हूं। ज्यादातर 'एनपीएम इंस्टॉल' के रूप में मैं एक छोटी टीम पर हूं। 'Node_modules' को प्रतिबद्ध करना अच्छा होता है यदि आप डीपीएस पर करीबी टैब नहीं रखते हैं क्योंकि यह तैनाती पर टूटी हुई साइट को रोकने में मदद कर सकता है। परियोजना के आधार पर प्रत्येक विधि में उनके पेशेवर/विपक्ष होते हैं। –

+0

क्या कोई तरीका है जिसे मैं 'save "कर सकता हूं' package.json' पहले से ही संस्थापित संकुल (यदि पहले' nsave' फ्लैग 'के साथ' npm इंस्टॉल 'नहीं चला रहा है)? –

1

मैंने grunt-install-dependencies (https://github.com/ahutchings/grunt-install-dependencies) की कोशिश नहीं की है, लेकिन ऐसा लगता है कि यह आपकी आवश्यकताओं को पूरा कर सकता है। बस अपने कस्टम definfed grunt tasts के भीतर पहले कार्य के रूप में इंस्टॉल-निर्भरता को कमांड जोड़ें, उदा।

grunt.register टास्क ('बिल्ड', ['इंस्टॉल-निर्भरता', 'useminPrepare', ...]);

+0

कोई भी https://github.com/iclanzan/grunt-npm-install पर देख सकता है – Tvaroh