Npm का मेरा उपयोग minified / uglified css / js उत्पन्न करना और django एप्लिकेशन द्वारा प्रस्तुत पृष्ठों में आवश्यक जावास्क्रिप्ट उत्पन्न करना है। मेरे अनुप्रयोगों में, जावास्क्रिप्ट एनिमेशन बनाने के लिए पृष्ठ पर चलता है, कुछ बार अजाक्स कॉल करता है, एक VUE फ्रेमवर्क के भीतर काम करता है और / या सीएसएस के साथ काम करता है। अगर पैकेज- lock.json का पैकेज में क्या है, पर कुछ ओवरराइडिंग नियंत्रण है, तो यह आवश्यक हो सकता है कि इस फ़ाइल का एक संस्करण हो। मेरे अनुभव में यह या तो उस प्रभाव को प्रभावित नहीं करता है जो npm स्थापित द्वारा स्थापित किया गया है, या यदि यह करता है, तो यह आज तक उन अनुप्रयोगों पर प्रतिकूल प्रभाव नहीं पड़ा है जो मैं अपने ज्ञान पर लागू करता हूं। मैं मोंगोडब या ऐसे अन्य अनुप्रयोगों का उपयोग नहीं करता हूं जो पारंपरिक रूप से पतले ग्राहक हैं।
मैं रेपो से पैकेज-लॉक.जॉन को हटा देता हूं क्योंकि एनपीएम इंस्टाल यह फाइल जेनरेट करता है, और एनपीएम इंस्टॉल एप को चलाने वाले प्रत्येक सर्वर पर तैनाती प्रक्रिया का हिस्सा है। नोड और एनपीएम का संस्करण नियंत्रण प्रत्येक सर्वर पर मैन्युअल रूप से किया जाता है, लेकिन मैं सावधान हूं कि वे समान हैं।
जब npm install
सर्वर पर चलाया जाता है, तो यह पैकेज-लॉक.जॉन को बदल देता है, और अगर सर्वर पर रेपो द्वारा दर्ज की गई फ़ाइल में परिवर्तन होते हैं, तो अगला परिनियोजन आपको मूल से नए परिवर्तन खींचने की अनुमति देता है। इसलिए कि आप तैनात नहीं कर सकते क्योंकि पुल पैकेज-लॉक में किए गए परिवर्तनों को अधिलेखित कर देगा। json।
आप स्थानीय रूप से जनरेट किए गए पैकेज-लॉक को भी नहीं लिख सकते हैं। रेपो पर क्या है (हार्ड ओरिजिनल मास्टर को रीसेट करें) के साथ, चूंकि npm शिकायत करेगा कि क्या आप कभी भी एक कमांड जारी करते हैं अगर पैकेज-लॉक। जसन यह दर्शाता नहीं है कि क्या है npm स्थापित होने के कारण नोड_मॉड्यूल्स, इस प्रकार तैनाती को तोड़ना। अब अगर यह इंगित करता है कि नोड_मॉड्यूल्स में थोड़ा अलग संस्करण स्थापित किया गया है, तो एक बार फिर से मुझे कोई समस्या नहीं हुई है।
यदि नोड_मॉड्यूल्स आपके रेपो पर नहीं है (और यह नहीं होना चाहिए), तो पैकेज-लॉक.जॉन को नजरअंदाज किया जाना चाहिए।
अगर मुझे कुछ याद आ रहा है, तो कृपया मुझे टिप्पणियों में सही करें, लेकिन इस फ़ाइल से संस्करण को जिस बिंदु पर लिया गया है, उसका कोई मतलब नहीं है। फ़ाइल package.json में संस्करण संख्याएँ होती हैं, और मुझे लगता है कि यह फ़ाइल npm स्थापित होने पर संकुल के निर्माण के लिए प्रयोग किया जाता है, जैसे ही मैं इसे हटाता हूँ, npm संस्थापन निम्नानुसार शिकायत करता है:
jason@localhost:introcart_wagtail$ rm package.json
jason@localhost:introcart_wagtail$ npm install
npm WARN saveError ENOENT: no such file or directory, open '/home/jason/webapps/introcart_devtools/introcart_wagtail/package.json'
और निर्माण विफल रहता है, हालांकि जब नोड्स / css बनाने के लिए ns_modules स्थापित करना या npm को लागू करना, पैकेज-लॉक को हटाने पर कोई शिकायत नहीं होती है।
jason@localhost:introcart_wagtail$ rm package-lock.json
jason@localhost:introcart_wagtail$ npm run dev
> introcart@1.0.0 dev /home/jason/webapps/introcart_devtools/introcart_wagtail
> NODE_ENV=development webpack --progress --colors --watch --mode=development
10% building 0/1 modules 1 active ...
git log
निपटना आसान हो जाता है।