2013-10-11 13 views
9

जब मैं साथगोड के लिए node_modules फ़ोल्डर क्यों प्रतिबद्ध नहीं है?

yo angular 

यह एक node_modules/निर्देशिका बनाता है एक AngularJS परियोजना बनाने लेकिन .gitignore में है कि निर्देशिका डालता है। जब मैं परियोजना कहीं और क्लोन और चलाने

grunt server 

मैं

Fatal error: Unable to find local grunt.

If you're seeing this message, either a Gruntfile wasn't found or grunt hasn't been installed locally to your project. For more information about installing and configuring grunt, please see the Getting Started guide:

मिल आरंभ करने की मार्गदर्शिका कैसे तथापि लापता node_modules/निर्देशिका को संभालने के लिए के बारे में कुछ नहीं कहा।

node_modules/निर्देशिका जानबूझकर गायब है क्योंकि यमन इसे डालता है .gitignore।

इस मामले में यमन और ग्रंट का उपयोग करने का सही तरीका क्या है?
क्या यमन और ग्रंट के लिए कुछ बेहतर दस्तावेज़ीकरण है?

धन्यवाद।

+0

आपकी .gitignore फ़ाइल में node_modules के अलावा अन्य चीजें सूचीबद्ध हैं? क्या आपका Gruntfile.js क्लोन एक्शन द्वारा लाया जा रहा है? Marplesoft हल हो जाने के बाद यह एक दूसरा मुद्दा हो सकता है। –

उत्तर

27

यह सही व्यवहार है। node_modules की सामग्री स्रोत नियंत्रण के लिए प्रतिबद्ध नहीं है। npm के पीछे विचार यह है कि यह package.json नामक फ़ाइल में सभी आवश्यक नोड निर्भरताओं को ट्रैक करता है। यह फ़ाइल स्रोत नियंत्रण के लिए प्रतिबद्ध होना चाहिए। तो फिर किसी दूसरी मशीन पर, आप कोड की जाँच और

npm install

यह package.json फ़ाइल और बादल से डाउनलोड सभी आवश्यक फ़ाइलों को देखता है और उन सब को एक नया node_modules निर्देशिका में डालता चला सकते हैं।

5

यदि आप इस विषय पर पर्याप्त खोज करते हैं तो आप अंततः निम्नलिखित article पर दौड़ेंगे जो बताता है कि यदि आप एक एप्लिकेशन बना रहे हैं जिसे आपको अपनी निर्भरताओं में चेक-इन करना चाहिए। के रूप में मॉड्यूल लेखकों से अपडेट प्रकाशित package.json पर रिलायंस समस्याएं हो सकती हैं, एक बेहतर समाधान भी इस भंगुर हो सकता है के रूप में यह है

npm shrinkwrap

, जिसके कारण फ़ाइल आपके निर्भरता और अपने निर्भरता निर्भरता लेकिन नीचे ताला लगा बनाता है उपयोग करने के लिए है एक मॉड्यूल लेखक के लिए अलग-अलग कोड के साथ एक ही संस्करण को फिर से प्रकाशित करने के लिए संभव है।

चूंकि yo angular एक ऐप्लिकेशन बना रहा है, इसलिए IMGO node_modules को .gitignore में शामिल नहीं किया जाना चाहिए, हालांकि अगर आप विंडोज़ पर हैं तो मुझे केवल अजीब तरह से पता चला है कि आप उस फ़ोल्डर में मॉड्यूल की जांच नहीं कर सकते हैं पथ की लंबाई के लिए ... श्वास।

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