ओपन सोर्स प्रोजेक्ट्स में / डिस्ट्रेस डायरेक्टरी का क्या अर्थ है?


148

चूंकि मैंने पहली बार ए dist/ कई ओपन सोर्स प्रोजेक्ट्स में डायरेक्टरी , आमतौर पर GitHub पर, मैं सोच रहा था कि इसका क्या मतलब है।

साथ dist, vendor,lib , src, और कई अन्य फ़ोल्डर नाम है कि हम अक्सर देखते हैं, मैं कभी कभी आश्चर्य है कि कैसे मैं अपने ही फ़ोल्डरों नाम रखना चाहिए।

यदि मैं गलत हूं तो मुझे सही करों!

  • src: शामिल हैं स्रोतों को है । कभी-कभी केवल शुद्ध स्रोत, कभी-कभी कीमा बनाया हुआ संस्करण के साथ, परियोजना पर निर्भर करता है।
  • विक्रेता: इसमें अन्य निर्भरताएँ होती हैं, जैसे अन्य ओपन सोर्स प्रोजेक्ट्स।
  • lib: अच्छा प्रश्न, यह वास्तव में करीब है vendor , परियोजना के आधार पर हम एक या दूसरे या दोनों को देख सकते हैं ...
  • dist: मैंने जो कुछ भी देखा, उसमें "उत्पादन" फाइलें शामिल हैं, जिसे हमें लाइब्रेरी का उपयोग करना चाहिए ।

खुला स्रोत इतना भ्रमित क्यों है? क्या चीजों को साफ करना संभव नहीं है? कम से कम प्रति भाषा क्योंकि कुछ भाषाएं विशिष्ट नामों का उपयोग करती हैं।


3
एक और अच्छा जवाब यहां मिल सकता है
स्किपजैक

जवाबों:


252

तुम्हारे प्रश्न का उत्तर देने के लिए:

/dist "वितरित करने योग्य", संकलित कोड / लाइब्रेरी का मतलब है।

फ़ोल्डर संरचना बिल्ड सिस्टम और प्रोग्रामिंग भाषा द्वारा भिन्न होती है। यहाँ कुछ मानक सम्मेलन हैं:

  • src/: प्रोजेक्ट बनाने और विकसित करने के लिए "स्रोत" फाइलें। यह वह जगह है जहां मूल स्रोत फ़ाइलें स्थित हैं, कम फ़ाइलों में संकलित होने से पहले dist/, public/या build/
  • dist/: "वितरण", संकलित कोड / पुस्तकालय, जिसका नाम भी है public/या build/। उत्पादन या सार्वजनिक उपयोग के लिए बनाई गई फाइलें आमतौर पर यहां स्थित हैं।
  • assets/: स्थिर सामग्री जैसे चित्र, वीडियो, ऑडियो, फोंट आदि।
  • lib/: बाहरी निर्भरता (जब सीधे शामिल)।
  • test/: परियोजना के परीक्षण स्क्रिप्ट, मॉक आदि।
  • node_modules/: एनएसपी द्वारा उपयोग किए जाने वाले जेएस पैकेजों के लिए पुस्तकालय और निर्भरताएं शामिल हैं।
  • vendor/: पीएचपी संकुल के लिए पुस्तकालयों और निर्भरता शामिल हैं, संगीतकार द्वारा उपयोग किया जाता है।
  • bin/: फ़ाइलें जो स्थापित होने पर आपके पेट में जुड़ जाती हैं।

मार्कडाउन / टेक्स्ट फाइलें:

  • README.md: एक मदद फ़ाइल जो सेटअप, ट्यूटोरियल और दस्तावेज़ों को संबोधित करती है। README.txtभी प्रयोग किया जाता है।
  • LICENSE.md: परियोजना के संबंध में आपको दिया गया कोई भी अधिकारLICENSEया LICENSE.txtएक ही सामग्री वाले लाइसेंस फ़ाइल नाम की विविधताएं हैं।
  • CONTRIBUTING.md: कैसे परियोजना के साथ मदद करने के लिए। कभी-कभी यह README.mdफ़ाइल में संबोधित किया जाता है।

विशिष्ट (ये हमेशा के लिए जा सकते हैं):

  • package.json: Npm द्वारा उपयोग किए जाने वाले JS संकुल के लिए पुस्तकालयों और निर्भरता को परिभाषित करता है।
  • package-lock.json: package.jsonNpm द्वारा उपयोग की जाने वाली निर्भरता के लिए विशिष्ट संस्करण लॉक ।
  • composer.json: कम्पोज़र द्वारा उपयोग किए जाने वाले PHP पैकेज के लिए लाइब्रेरी और निर्भरता को परिभाषित करता है।
  • composer.lock: composer.jsonसंगीतकार द्वारा उपयोग की जाने वाली निर्भरता के लिए विशिष्ट संस्करण लॉक ।
  • gulpfile.js: कार्यों और कार्यों को परिभाषित करने के लिए इस्तेमाल किया जाता है।
  • .travis.yml: ट्रैविस CI पर्यावरण के लिए कॉन्फ़िगर फ़ाइल ।
  • .gitignore: फ़ाइलों की विशिष्टता Git द्वारा नजरअंदाज करने का मतलब है

35
के अर्थ के बारे में क्या dist?
वडकोरक्वेस्ट

23
वितरण, इसमें आमतौर पर संकलित सॉफ़्टवेयर शामिल होते हैं।
0xcaff

2
assets/फ़ोल्डर के बारे में क्या ? क्या माना जाता है?
सेकेम्टी

2
@Sekhemty, स्थिर सामग्री जैसे चित्र, वीडियो, ऑडियो, फोंट आदि
क्वेकर

और जनता के लिए है? app.use (express.static (__ dirname + '/ public')); ?? app.use (express.static (__ dirname + '/ dist')); एक अच्छा विचार नहीं है
LOG_TAG

55

distफ़ोल्डर के अर्थ के बारे में अपने मूल प्रश्न का उत्तर देने के लिए :

कमी distके लिए खड़ा है distributableऔर एक निर्देशिका को संदर्भित करता है जहां फ़ाइलों को संग्रहीत किया जाएगा जो कि बिना उपयोग किए गए स्रोत कोड को संकलित या छोटा करने की आवश्यकता के बिना दूसरों द्वारा सीधे उपयोग किया जा सकता है।

उदाहरण: यदि मैं किसी जावा लाइब्रेरी के स्रोत कोड का उपयोग करना चाहता हूं जिसे किसी ने लिखा है, तो आपको इसका उपयोग करने के लिए पहले स्रोतों को संकलित करने की आवश्यकता है। लेकिन अगर कोई लाइब्रेरी ऑथर पहले से तैयार किए गए वर्जन को रिपॉजिटरी में डालता है, तो आप बस आगे बढ़ सकते हैं। इस तरह के पहले से संकलित संस्करण को distनिर्देशिका में सहेजा गया है ।

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

नोट: कुछ डेवलपर इसके बजाय target, buildया dest(गंतव्य) जैसे नामों का उपयोग करते हैं dist। लेकिन इन फ़ोल्डरों का उद्देश्य समान है।


11
मुझे लगता है कि यह सबसे अच्छा सवाल है। वितरण के लिए डिस्टेबल का मतलब है, वितरण नहीं। यह निर्देशिका है कि एक बार सब कुछ संकलित किया गया है, gulped, transpiled, इकट्ठे और अन्य सभी स्रोतों और फ़ाइलों और trinkets आदि से निर्मित .. यह वही है जो आप दूसरों को वितरित करना चाहते हैं या इंगित करना चाहते हैं कि यह वितरण योग्य है!
एरिक बिशर्ड

3

फ़ोल्डरों का सारांश:

  • बिन: बायनेरिज़
  • src: स्रोत
  • शामिल हैं: C / C ++ हेडर
  • lib: C / C ++ लाइब्रेरीज़
  • contrib: अन्य लोगों से योगदान
  • दस्तावेज़ / दस्तावेज़: दस्तावेज़
  • आदमी: मैनुअल (यूनिक्स / लिनक्स)

1

वास्तव में! "डिस्ट फोल्डर" वह परिणाम है जो आपको उत्पादन के लिए "npm रन बिल्ड" या "एनजी बिल्ड" या "एनजी बिल्ड -प्रोड" के साथ एक स्रोत कोड को संशोधित करने के बाद मिलता है।

इस दौरान! "डिस्ट फ़ोल्डर" प्राप्त करने के बाद अभी भी कुछ चीजें हो सकती हैं जो आपको अभी भी अपने प्रोजेक्ट प्रकार your के आधार पर करने की आवश्यकता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.