গুলপ টাস্ক থেকে ফাইল / ডিরেক্টরি বাদ দিয়ে


227

আমার কাছে একটি গাল্প আরজেএস টাস্ক রয়েছে যা আমার সমস্ত কাস্টম। জেএস ফাইলগুলিকে (যে কোনও নন-ভেন্ডর লাইব্রেরি) একত্রিত করে এবং কৃপযুক্ত করে।

আমি যা করার চেষ্টা করছি তা হ'ল এই কাজটি থেকে কিছু ফাইল / ডিরেক্টরি বাদ দিন (নিয়ন্ত্রক এবং নির্দেশিকা)।

আমার গাছ এখানে:

 - 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
ড্যানবার্স

1
@ ব্যবহারকারী1655734: নলখাগুলি উপেক্ষা ডকুমেন্টেশন ( npmjs.com/package/gulp-ignoregulp.src(['./*.js', '!./node_modules/**']) ) প্রথমে বাদ পড়ার প্যাটার্নটি প্রস্তাব করে ( ), তারপরে গল্ফ-উপেক্ষা করুন
জেরোমি ফ্রেঞ্চ

উত্তর:


526

দ্রুত উত্তর

Src এ, আপনি সর্বদা "!" ব্যবহার করে উপেক্ষা করার জন্য ফাইলগুলি নির্দিষ্ট করতে পারেন।

উদাহরণ (আপনি আপনার জেএস ফোল্ডার এবং সাবফোল্ডারের সমস্ত * .min.js ফাইলগুলি বাদ দিতে চান:

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

আপনি স্বতন্ত্র ফাইলগুলির জন্য এটিও করতে পারেন।

প্রসারিত উত্তর:

গুল্প ডকুমেন্টেশন থেকে প্রাপ্ত:

gulp.src (গ্লোবস [, বিকল্প]]

প্রদত্ত গ্লোব বা গ্লোবগুলির একটি অ্যারে ফাইলগুলি মিলবে its প্লাগইনগুলিতে পাইপ করা যায় এমন ভিনাইল ফাইলগুলির একটি স্ট্রিম ফিরিয়ে দেয়।

গ্লোব নোড-গ্লোব সিনট্যাক্সকে বোঝায় বা এটি সরাসরি ফাইল পাথ হতে পারে।

সুতরাং, নোড-গ্লোব ডকুমেন্টেশনের দিকে তাকিয়ে আমরা দেখতে পাচ্ছি যে এটি মিলে যাওয়ার জন্য মিনিম্যাচ লাইব্রেরি ব্যবহার করে।

উপর minimatch ডকুমেন্টেশন , তারা নিম্নলিখিত বাতলান:

যদি প্যাটার্নটি শুরু হয় একটি দিয়ে! চরিত্র, তারপর এটি উপেক্ষিত হয়।

আর এজন্যই ব্যবহার করছেন! প্রতীক একটি গুল্প টাস্ক থেকে ফাইল / ডিরেক্টরিগুলি বাদ দেবে


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
@ অ্যাভকাজারভিলে আমি সম্মত হলাম যে আপনার উত্তরটি সম্পূর্ণ বৈধ। আমি আমার মন্তব্যে যা প্রতিক্রিয়া ব্যক্ত করেছি তা ছাড়া পোস্টের প্রতিক্রিয়াটি সঠিকভাবে কাজ করতে সক্ষম হয়েছি। উত্তর / প্রশ্নের সাথে এর কোনও যোগসূত্র কীভাবে নিশ্চিত তা নয়, তবে আমার জন্য কী কাজ করেছে তা পোস্ট করতে চেয়েছিলেন।
স্কট

1
@ মিস্টার ওহ আসলে, gulp.src হ'ল Vinyl-fs.src, যা গ্লোববিংকে গ্লোব-স্ট্রিমের দিকে নিয়ে যায়, যার ফলে নেতিবাচক গ্লোবগুলির জন্য নোড- গ্লোব এবং নেতিবাচক গ্লোবগুলির জন্য মিনিমেচ ব্যবহার করা হয়, সুতরাং নেতিবাচক নিদর্শনগুলি ব্যবহার করা ঠিক আছে। পরীক্ষা করে দেখুন এখানে উল্লিখিত glob-স্ট্রীম ডকুমেন্টেশন এবং নমুনা ইতিবাচক ও নেতিবাচক উল্লিখিত glob নিদর্শন , বা কোড কটাক্ষপাত আছে
কোডব্লিং

18
নেগেগেশন এটি করার সঠিক উপায়। গুল্প ডকুমেন্টেশন ভুল ছিল। আমি ডক্স সংক্রান্ত একটি সমস্যা খুলেছি এবং জনসংযোগ জমা দিয়েছি যা ডকুমেন্টেশন সংশোধন করেছে ।
এডওয়ার্ড ব্রে

5

গুল্প ম্যাচিং গ্লোবগুলির জন্য হুডের নীচে মাইক্রোম্যাচ ব্যবহার করে, সুতরাং আপনি .min.js ফাইলগুলির যে কোনও একটি বাদ দিতে চাইলে আপনি এই জাতীয় বর্ধিত গ্লোববিং বৈশিষ্ট্যটি ব্যবহার করে এটি অর্জন করতে পারেন :

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

মূলত কি এটা বলেছেন তা হল: কোন স্তর ভেতর ঢুকে দখল সবকিছু JS যে দিয়ে শেষ হয় না * .min.js

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.