Gulp.src ফাইলগুলিতে সম্পূর্ণ পাথের অ্যারে পাস করা পছন্দ করে না কেন?


94

আমি gulp.src ফাইলগুলির একটি অ্যারের পাস করার চেষ্টা করছি যা আমি এটির সাথে মোকাবিলা করতে চাই। এটি অ্যারে যেমন এটি দাঁড়িয়ে আছে।

['bower_components/jquery/jquery.js',
 'bower_components/superscrollorama/js/greensock/TweenMax.min.js',
 'bower_components/superscrollorama/jquery.superscrollorama.js' ]

যদিও gulp.src এর মত মনে হচ্ছে না এবং তৃতীয় উপাদানটি শেষের গন্তব্যে পৌঁছেছে না তা সন্ধান করছি।

আমি খুঁজে পেয়েছি যে আমি যখন কিছু ওয়াইল্ডকার্ডের চরিত্রগুলি পরিচয় করিয়ে দিই তখন সবকিছু ঠিকঠাক কাজ করে:

['bower_components/**/jquery.js',
 'bower_components/**/js/greensock/TweenMax.min.js',
 'bower_components/**/jquery.superscrollorama.js' ]

কিন্তু কেন? গ্লোব্বিংয়ের কাজ করার সাথে কিছু করার? আমি googled করেছি কিন্তু খুঁজে পাচ্ছি না।

হয়তো এটি গ্লোববিংয়ের উদ্দেশ্যে করা উদ্দেশ্য নয় তবে এটি আমার পক্ষে বোঝায় না যে এটি এইভাবে কাজ করা উচিত। কেউ কি কিছু আলোকপাত করতে পারে?

উত্তর:


162

আপনি যখন পুরো পথের একটি অ্যারে পাস করেন, প্রতিটি ফাইল স্বতন্ত্রভাবে প্রক্রিয়া করা হয়। গ্লোব্বিং জানে না যে পথটির মূলটি কোথায় (বাস্তবে এটি প্রথম গ্লোবের উপর ভিত্তি করে অনুমান করে)। সুতরাং, প্রতিটি ফাইল এতে থাকা ফোল্ডারে মূলী এবং আপেক্ষিক পথটি ফাঁকা।

তবে এর একটি সহজ সমাধান রয়েছে। baseদ্বিতীয় যুক্তি হিসাবে কী দিয়ে কোনও বস্তুটি পাস করুন gulp.srcএবং প্রত্যেকটির সঠিক আপেক্ষিক পথ থাকবে:

return gulp.src(['bower_components/jquery/jquery.js',
                'bower_components/superscrollorama/js/greensock/TweenMax.min.js',
                'bower_components/superscrollorama/jquery.superscrollorama.js' ],
            {base: 'bower_components/'})
        .pipe(...);

23
এছাড়াও: গুল্প ডক্সে এটি মোটেও উল্লেখ করা হয়নি, এটি বের করার জন্যglob-stream আপনাকে ডক্সে ক্লিক করতে হবে।
উত্সাহী

9
পাথগুলির যদি একই বেস না থাকে তবে কী হবে? আমার সেই একই দৃশ্যের জন্য একই ধরণের প্রশ্ন রয়েছে: gulp src প্রয়োজনীয় json ফাইলের অ্যারে মানগুলি না পড়ছে
আন্দ্রে

4
আমার পক্ষ থেকে একই প্রশ্ন। আমার যে কাজটি চালাতে হবে তার জন্য আমার দুটি আলাদা ঘাঁটি রয়েছে
সিন্থিয়া সানচেজ

4
ফাইল সিস্টেমের ঠিক কোথাও কোথাও একটি সাধারণ বেস আছে ? এমনকি যদি এটি "/"। যদি গাল্প আপনার প্রকল্পের মূল থেকে চলতে থাকে তবে আপনি কেবল বর্তমান দিরকে বেস হিসাবে এবং বর্তমান ডিয়ারের জন্য পাইপটি নির্দিষ্ট করতে পারেন। gulp.src(mixed, {base: "."}).pipe(doStuff).pipe(dest("."))
1311407
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.