एक वेबसाइट का संस्करण नियंत्रण: देव / उत्पादन फ्रंट-एंड फाइलें


9

मैं हमारी वेबसाइट परियोजनाओं को नियंत्रित करने के लिए बेहतर तरीके से सोचने की कोशिश कर रहा हूं। ध्यान रखें कि मैं केवल एक फ्रंट-एंड देव हूं इसलिए मुझे वीसीएस का गहरा ज्ञान नहीं है।

वर्कफ़्लोज़ बदल रहे हैं, और पिछले संस्करण नियंत्रण की आदतें पुरानी हो गई हैं। मुख्य समस्या है प्रत्येक वेबसाइट के लिए फ्रंट-एंड फ़ाइलों की 2 सरणियाँ हैं।

देव वातावरण (कम फाइलें, असम्पीडित js, चित्र आदि)। बिल्ड माहौल, "गल्पिफाइड" (सब कुछ मानव द्वारा संकुचित और पठनीय नहीं)।

लेकिन आप इसकी स्रोत फ़ाइलों के साथ एक वेबसाइट नहीं बेच सकते। खैर, यह बहुत सही नहीं लगता है।

2 रिपोज होने का उपाय है: एक बिल्ड, एक डिव, जिसमें डायरेक्टरी बनाने के लिए गप फाइल भेजने के साथ gulp है। लेकिन इसकी एक परेशानी को बनाए रखने के लिए, छोटी कंपनियों के साथ मुझे नहीं लगता कि यह बहुत अच्छा है। यह बहुत सारे रिपोज बनाता है, और लोगों को कई रिपोज के साथ प्रबंधन करना पड़ता है, कभी-कभी एक svn रेपो के साथ भी समस्याएं पैदा होती हैं।

तो वहाँ भी 1 रेपो होने का समाधान है: स्रोत फ़ाइलें और उसी svn में ठेस फ़ाइलें। लेकिन तब स्रोत फ़ाइलों को हटाने की आवश्यकता होती है जब वेबसाइट स्थानीय देव सर्वर से उत्पादन सर्वर पर जाती है (इसलिए एक स्थान, देव या उत्पादन के आधार पर एक एकल भंडार में विभिन्न फाइलें होती हैं)। मैंने जो सुना, वह अच्छा नहीं है

संस्करण नियंत्रण प्रणाली के संबंध में एक गल्प फ्रंट-एंड वर्कफ़्लो के प्रबंधन का सही तरीका क्या है?

जवाबों:


13

स्रोत नियंत्रण का एक मूल नियम यह है कि आपको केवल लिखित लिखित कलाकृतियों को रेपो (मूल स्रोत फ़ाइलों) में रखने की ज़रूरत है , जो सब कुछ "संकलित" या "उत्पन्न" हो सकता है, उसे वहां संग्रहीत करने की आवश्यकता नहीं है, क्योंकि यह अतिरेक पैदा करेगा । एक (वैकल्पिक रूप से) एक रेपो में निर्माण प्रक्रिया के कुछ हिस्सों / (जिसे कभी-कभी कलाकृतियां भी कहा जाता है) में एक निर्माण प्रक्रिया के कुछ हिस्सों को स्टोर कर सकते हैं , जब उन्हें पुन: उत्पन्न करने के चरण पूरी तरह से स्वचालित नहीं होते हैं, या कैशिंग उद्देश्यों के लिए, जब निर्माण को पुन: उत्पन्न करने के लिए निर्मित कदम धीमा होते हैं। ।

इसलिए यदि आपके पास अपने देव स्रोत फ़ाइलों से उत्पादन फ़ाइलों को बनाने के लिए पूरी तरह से स्वचालित प्रक्रिया है, तो आपको केवल देव फ़ाइलों को स्रोत नियंत्रण में रखना होगा (साथ में उत्पादन फ़ाइलें बनाने के लिए स्क्रिप्ट्स)। यदि नहीं, तो ऐसी प्रक्रिया स्थापित करें। सुनिश्चित करें कि किसी को स्रोत से उत्पन्न होने के बाद मैन्युअल रूप से उत्पादन फ़ाइलों के साथ फिड करना है। यदि आप अपने VCS से "सीधे" परिनियोजित करना चाहते हैं, तो सुनिश्चित करें कि आपके पास एक परिनियोजित स्क्रिप्ट है जो स्रोत नियंत्रण से बाहर निकली हुई देव स्रोत फ़ाइलों को खींचती है, "gulpification" करती है और परिणामी फाइलों को एक चरण में उत्पादन में स्थानांतरित करती है।

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

और हाँ, यह एक कड़ाई से अलग, दूसरा रेपो होना चाहिए, क्योंकि यह एक पूरी तरह से अलग उद्देश्य और एक अलग जीवन चक्र है, जिससे आप रेपो करते हैं। आप इसका उपयोग केवल बैकअप के लिए करते हैं, स्रोत नियंत्रण के लिए नहीं, जो एक अलग प्रक्रिया है।


इसका मतलब यह है कि जब साइट उत्पादन के लिए जाती है, तो उसे उत्पादन सर्वर से बनाने की आवश्यकता होती है? या हो सकता है कि सिर्फ निर्माण की मेजबानी करें (जो तब संस्करणित नहीं किया गया है)
एंटोनिन सीजार्ड

@topleft: "प्रोडक्शन सर्वर" से? जरूरी नहीं कि स्रोत कोड रेपो में ही हो, आप इसे हर उस जगह से बना सकते हैं, जहां आपकी पहुंच स्रोत नियंत्रण और उत्पादन सर्वर की फाइल प्रणाली तक है। तो जहाँ भी आप पसंद करते हैं, एक देव मशीन से, एक डीमेटेड बिल्ड मशीन से, या शायद सीधे मशीन पर। लेकिन अपनी टिप्पणी लिखने के बाद मेरा जोड़ा हुआ पैराग्राफ भी देखें।
डॉक ब्राउन

3
आपका शब्दांकन भ्रामक है। "कलाकृतियों" अक्सर संकलक या जनरेटर के आउटपुट को संदर्भित करता है , न कि इनपुट को।
दैत्य

यह हमेशा सच नहीं होता है: बूटस्ट्रैप किए गए संकलक के लिए, आपको वीसीएस के तहत उत्पन्न फ़ाइलों को डालने की आवश्यकता हो सकती है। एक विशिष्ट उदाहरण Ocaml की boot/ocamlc melt/generated/*.cc
बाईटेकोड

1
@ डायनेथ: AFAIK शब्द विरूपण साक्ष्य का मुख्य रूप से सॉफ्टवेयर विकास में मैन्युअल रूप से निर्मित भागों का मतलब है । आप सही हैं कि कुछ संदर्भों में लोग "निर्माण कलाकृतियों" की बात करते हैं, क्योंकि संकलक जो उत्पादन करता है वह अप्रत्यक्ष रूप से मैनुअल प्रोग्रामिंग कार्रवाई का एक परिणाम है।
डॉक्टर ब्राउन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.