गुल टास्क से फाइलों / निर्देशिकाओं को छोड़कर


227

मेरे पास एक gulp rjs कार्य है जो मेरे सभी रिवाज .JS फ़ाइलों (किसी भी गैर विक्रेता लाइब्रेरी) को समाप्‍त करता है और अशुद्ध करता है।

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

पेड़ मेरे पेड़:

 - 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
क्या आपने गल्प-इग्नोर करने की कोशिश की है? npmjs.org/package/gulp-ignore
danbars

1
@ user1655734: gulp-अनदेखा प्रलेखन ( npmjs.com/package/gulp-ignoregulp.src(['./*.js', '!./node_modules/**']) ) पहले अपवर्जित पैटर्न ( ) का सुझाव देता है , फिर gulp- ign
जेरोमै फ्रेंच फ्रेंच

जवाबों:


526

शीघ्र जवाब

Src पर, आप हमेशा ""!

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

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

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

विस्तारित उत्तर:

Gulp प्रलेखन से निकाले गए:

gulp.src (ग्लब्स [, विकल्प])

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

ग्लोब नोड-ग्लोब सिंटैक्स को संदर्भित करता है या यह एक सीधा फ़ाइल पथ हो सकता है।

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

पर minimatch प्रलेखन , वे निम्नलिखित का कहना है:

अगर पैटर्न ए से शुरू होता है! चरित्र, तो यह नकारात्मक है।

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


11
क्या इसे टाला नहीं जाना चाहिए? यह नोड-ग्लोब डॉक्यूमेंटेशन से है:Negation The intent for negation would be for a pattern starting with ! to match everything that doesn't match the supplied pattern. However, the implementation is weird, and for the time being, this should be avoided. The behavior is deprecated in version 5, and will be removed entirely in version 6.
मिस्टर ओह

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

1
@avcajaraville मैं मानता हूं कि आपका उत्तर पूरी तरह से मान्य है। मैंने अपनी टिप्पणी में जो जवाब दिया, उसके बिना मुझे सही ढंग से काम करने वाली पोस्ट प्रतिक्रिया नहीं मिल रही थी। यह सुनिश्चित नहीं है कि इसका उत्तर / प्रश्न से कोई लेना-देना नहीं है, लेकिन सिर्फ वही पोस्ट करना चाहता हूं जो मेरे लिए काम करता है।
स्कॉट

1
@MisterOh वास्तव में, gulp.src vinyl-fs.src है, जो ग्लोब-स्ट्रीम को बंद कर देता है, जो सकारात्मक ग्लोब के लिए नोड-ग्लोब का उपयोग करता है और नकारात्मक ग्लब्स के लिए न्यूनतम करता है, इसलिए नकारात्मक पैटर्न का उपयोग करना ठीक है। यहां ग्लोब-स्ट्रीम प्रलेखन और नमूना सकारात्मक और नकारात्मक ग्लोब पैटर्न देखें , या कोड पर एक नज़र डालें
कोडिंग जूल

18
ऐसा करने का सही तरीका नकारात्मक है। गुल दस्तावेज़ गलत था। मैंने डॉक्स के बारे में एक मुद्दा खोला और पीआर को प्रस्तुत किया जिसने प्रलेखन को सही किया है
एडवर्ड ब्रे

5

मेल खाने वाले ग्लब्स के लिए हुड के नीचे गेलप माइक्रोप्रैच का उपयोग करता है, इसलिए यदि आप .min.js फ़ाइलों में से किसी को भी बाहर करना चाहते हैं, तो आप इस तरह से एक विस्तारित ग्लोबिंग सुविधा का उपयोग करके इसे प्राप्त कर सकते हैं :

src("'js/**/!(*.min).js")

मूल रूप से यह क्या कहता है: js के अंदर किसी भी स्तर पर सब कुछ पकड़ो जो * .min.js के साथ समाप्त नहीं होता है

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