2014-04-30 19 views
186

से फ़ाइलों/निर्देशिकाओं को छोड़कर मेरे पास एक gulp rjs कार्य है जो मेरे सभी कस्टम .जेएस फाइलों (किसी भी गैर विक्रेता पुस्तकालय) को जोड़ता और जोड़ता है।गुलप कार्य

जो मैं करने की कोशिश कर रहा हूं, इस कार्य (नियंत्रकों और निर्देशों) से कुछ फ़ाइलों/निर्देशिकाओं को बाहर कर दिया गया है।

यहाँ मेरा पेड़:

- application 
    - resources 
     - js 
     main.js 
     - vendor 
      - jquery 
      - modernzr 
      - angular 
     - controllers 
      - controller1 
      - controller2 
      - controller3 
     - directives 
      - directives1 
      - directives2 
      - directives3 
     - widgets 
      - widget1 
      - widget2 
      - widget3 
      - widget4 
     - modules 
      - modules1 
      - modules2 
      - modules3 
      - modules4 

यहाँ मेरी gulp.js

dir = { 
    app:  'application', 
    dest:  'dest', 
}; 

config = { 
    src: { 
     js: dir.app + '/resources/js' 
    }, 
    dest: { 
     js: dir.dest + '/resources/js' 
    } 
}; 

gulp.task('rjs', function() { 

     rjs({ 
      baseUrl: config.src.js, 
      out: 'main.js', 
      name: 'main', 
      mainConfigFile: config.src.js + '/main.js', 
      exclude: [ 'jquery', 'angular']   
     }) 
     .pipe(prod ? uglify({ mangle: false, outSourceMap: true, compress: { drop_console: true } }) : gutil.noop()) 
     .pipe(gulp.dest(config.dest.js)) 
     .pipe(filesize()) 
     .pipe(dev ? connect.reload() : gutil.noop()); 

}); 
+1

क्या आपने गल्प-अनदेखा करने की कोशिश की है? https://www.npmjs.org/package/gulp-ignore – danbars

+1

@ user1655734: gulp-ignore दस्तावेज़ (https://www.npmjs.com/package/gulp-ignore) पैटर्न को बाहर करने का सुझाव देता है ('gulp.src (['./*.js', '!//ode_modules/**']) ') पहले, फिर gulp-ignore –

उत्तर

420

त्वरित जवाब

src पर, आप हमेशा फ़ाइलों का उपयोग कर अनदेखी करने के लिए निर्दिष्ट कर सकते हैं "!"।

उदाहरण (आप को बाहर करने के सभी * अपने js फ़ोल्डर पर फ़ाइलें और सबफ़ोल्डर .min.js हैं:।

gulp.src(['js/**/*.js', '!js/**/*.min.js']) 

आप अलग-अलग फ़ाइलों के लिए भी यह कर सकते हैं

विस्तारित जवाब:

Extracted from gulp documentation:

gulp.s आरसी (ग्लब्स [, विकल्प])

प्रदान की गई ग्लोब या ग्लोब की सरणी से मेल खाने वाली फाइलें। Vinyl फ़ाइलों की एक धारा देता है जो प्लगइन्स को पाइप किया जा सकता है।

ग्लोब नोड ग्लोब वाक्य रचना को संदर्भित करता है या यह एक प्रत्यक्ष फ़ाइल पथ हो सकता है।

तो, node-glob documentation पर देखकर हम देख सकते हैं कि यह मिलान करने के लिए मिनीमैच लाइब्रेरी का उपयोग करता है। अगर पैटर्न एक साथ शुरू होता है

:

minimatch documentation पर, वे निम्नलिखित का कहना है! चरित्र, तो इसे अस्वीकार कर दिया जाता है।

और यही कारण है कि का उपयोग कर! प्रतीक एक gulp कार्य से फ़ाइलों/निर्देशिकाओं को बाहर कर देगा

+10

इसे टालना नहीं चाहिए? यह नोड-ग्लोब प्रलेखन से है: 'नकारात्मक अस्वीकृति का इरादा एक पैटर्न के लिए शुरू होगा! आपूर्ति की गई पैटर्न से मेल नहीं खाती हर चीज से मिलान करने के लिए। हालांकि, कार्यान्वयन अजीब है, और समय के लिए, इससे बचा जाना चाहिए। व्यवहार संस्करण 5 में बहिष्कृत किया गया है, और पूरी तरह से संस्करण 6 में हटा दिया जाएगा। –

+2

मुझे उपयोग करने की आवश्यकता है: 'gulp.src ([/ * फ़ाइल globs * /], {base: "।"}) 'ग्लोब पैटर्न को सही तरीके से काम करने के लिए। – Scott

+0

@ स्कॉट: हाँ, लेकिन इसका उत्तर/प्रश्न के साथ कुछ लेना देना नहीं है। – avcajaraville

संबंधित मुद्दे