** ग्लोब कैरेक्टर क्या है?


87

मेरी प्रतिक्रिया में यह पथ है:

var path = {
  HTML: 'src/index.html',
  ALL: ['src/js/*.js', 'src/js/**/*.js', 'src/index.html'],
  JS: ['src/js/*.js', 'src/js/**/*.js'],
  MINIFIED_OUT: 'build.min.js',
  DEST_SRC: 'dist/src',
  DEST_BUILD: 'dist/build',
  DEST: 'dist'
};

डबल ग्लोब कैरेक्टर क्या है?

मुझे पता है कि सिंगल ग्लोब क्या है ... लेकिन डबल क्या है? एकल ग्लोब

जवाबों:


101

यह एकल तारांकन के समान है, लेकिन इसमें कई निर्देशिका स्तर शामिल हो सकते हैं ।

दूसरे शब्दों में, जबकि /x/*/yप्रविष्टियों से मेल खाएगा जैसे:

/x/a/y
/x/b/y

और इतने पर (साथ वाइल्डकार्ड खंड में केवल एक निर्देशिका स्तर), डबल तारांकन /x/**/yहोगा भी चीजों की तरह मेल खाते हैं:

/x/any/number/of/levels/y

"किसी भी संख्या के स्तर" की अवधारणा के साथ शून्य भी (दूसरे शब्दों में, इसके विकल्पों में से एक के रूप में /x/**/yमेल खाएगा /x/y)।


एक तरफ के रूप में, जितना मैं किसी भी चीज के साथ मेनफ्रेम का श्रेय लेने से नफरत करता हूं , मेरा मानना ​​है कि इसका इस्तेमाल एमवीएस के ईयरलिस्ट दिनों से कई स्तरों पर डेटासेट के चयन की अनुमति देने के लिए किया गया है :-)


2
इसका कोई अर्थ नहीं निकलता। यदि * 0 या अधिक वर्णों को दर्शाता है, तो वह पैटर्न संभावित रूप से मेल खा सकता है / x // y, जो निरर्थक है। आप वास्तव में क्या कह रहे हैं "किसी भी संख्या में वर्ण, उसके बाद किसी भी संख्या में वर्ण"। नहीं है कि बस ... ओह, मुझे नहीं पता ... वर्णों की कोई संख्या ???
AleksandrH

7
@AleksandrH, नहीं, यह सामान्य अर्थों में एक रेगीक्स नहीं है: वर्णों का कोई मेल नहीं है , केवल निर्देशिका नाम हैं। यह विशेष रूप से पदानुक्रमित फ़ाइल सिस्टम के लिए है। आपके पहले बिंदु पर, यदि खाली निर्देशिका नामों की अनुमति थी, /x//yपूरी तरह से मान्य होगी। मैंने कभी भी एक फ़ाइल सिस्टम नहीं देखा है जो इसे अनुमति देता है। आपके दूसरे बिंदु पर, *इसका मतलब "किसी भी निर्देशिका के नाम, एक स्तर केवल" से मेल खाता है (इसलिए अगले /डिवाइडर से आगे नहीं जाएगा ) जबकि **इसका अर्थ है " प्रत्येक स्तर पर किसी भी निर्देशिका नाम के साथ किसी भी स्तर का मिलान करें " (कई के रूप में पार कर सकता है) /आवश्यकतानुसार डिवाइडर)।
paxdiablo

9
यह ध्यान देने योग्य बात है कि के लिए मूल्य /x/**/y/, /x/y/भी शामिल है, जो साफ है।
यासीन इमोनाचेन

24

इसका उपयोग आमतौर पर किसी भी उपनिर्देशिका को इंगित करने के लिए किया जाता है। इसलिए

src/js/**/*.js

मेल होगा

src/js/files/*.js
src/js/more-files/*.js

etc
etc

8
एक एकल तारांकन आपके उदाहरणों से भी मेल खाता है। मुझे लगता है कि आप अपने दूसरे उदाहरण के लिए एक अतिरिक्त उप-उपनिर्देशिका शामिल करना चाहते थे।
साइमन ईस्ट

1
@SimonEast इस तरह? src / js / files / नियंत्रकों / user.js, src / js / files / model / foo / var.js
शरद ऋतु 25'19

21

**फॉरवर्ड-स्लैश सहित किसी भी चरित्र से मेल खाता है, फॉरवर्ड-स्लैश को छोड़कर/
* किसी भी चरित्र से मेल खाता है (केवल फ़ाइल या निर्देशिका नाम से मेल खाने के लिए)


4

ग्रंट की तरह, डबल ** कह रहा है, "सभी सबफ़ोल्डर्स को js के भीतर और सभी .jpg फ़ाइलों के लिए देखें।"

आप वास्तव में यहाँ उसी के लिए उल्लेख कर सकते हैं:

https://www.codefellows.org/blog/quick-intro-to-gulp-js

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