मैं एक ही सवाल था (Avoid npm refresh after every deployment on Heroku देखें)।
हेरोकू एक डाउनलोड/बिल्ड/आदि को मजबूर करता है। अनुक्रम क्योंकि उन्हें 'रिक्त स्लेट' के साथ एक ऐप शुरू करने की आवश्यकता है: पिछली अवांछित फ़ाइलों को साफ़ करने के लिए, जब वे आपके ऐप को दूसरे सर्वर पर ले जाते हैं, तो जब आप नए वेब डायनोस को आवंटित करते हैं, तो
समस्या मूल पैकेज के साथ स्पष्ट रूप से है , और पुनर्मूल्यांकन। सभी जेएस-केवल पैकेजों के लिए, मैं उन्हें अपने प्रोजेक्ट के साथ प्रतिबद्ध करता हूं, और उन्हें package.json से हटा देता हूं। यह कुछ सेकंड प्राप्त करता है, लेकिन इतना नहीं।
मैं निश्चित रूप से पूर्व संकलन और देशी मॉड्यूल के लिए प्रतिबद्ध, (मैं सफलतापूर्वक wkhtml2pdf Heroku पर, चलाने के एक द्विआधारी linux-amd64 के लिए संकलित साथ उदाहरण के लिए) यदि आप एक लिनक्स बॉक्स तक पहुंचने के लिए संभव हो जाना चाहिए (या वी एम) उसी कॉन्फ़िगरेशन के साथ - आज के रूप में, Linux [...] 2.6.32-350-ec2 #57-Ubuntu SMP [...] x86_64 GNU/Linux
।
हालांकि मैं इसे एक निश्चित समाधान के रूप में अनुशंसा नहीं करता हूं, क्योंकि यह कुछ दिन तोड़ने की संभावना है - ऐसा लगता है कि उसके अनुयायी प्लेटफॉर्म को एप चलाने की गारंटी देता है।
[बिल्ड-पैक] (https: // github।com/heroku/heroku-buildpack-nodejs) (जो कोड है जो आपके स्रोत कोड को हेरोकू पर तैनात किया जाता है) में बदलता है, पहले से ही निर्माण के बीच 'node_modules' को कैशिंग कर रहा है। कम से कम यह रीडमे में ऐसा कहता है। क्या आप वाकई अपने निर्माण को धीमा कर रहे हैं? – friism
@ मित्रता मुझे लगता है कि वे मानक एनपीएम कैशिंग का उपयोग करते हैं, इसलिए मॉड्यूल को अभी भी अनपॅक किया जाना है, कॉपी किया गया है और, सबसे महत्वपूर्ण बात यह है कि प्रत्येक धक्का के बाद पुनः संकलित किया जाता है। यदि आपके पास एक विशिष्ट निर्भरता पेड़ के साथ मॉड्यूल हैं या सी ++ एक्सटेंशन (mongodb, socket.io, आदि) के आधार पर इसमें कुछ समय लगता है। –