পিতামাতার ডিরেক্টরি অনুসারে গুল্পে ফাইলগুলি অনুলিপি করার এবং পুনর্নবীকরণের উপায় খুঁজছেন


91

প্রতিটি মডিউলের জন্য আমার কাছে কিছু ফাইল রয়েছে যা বিল্ড ডিরেক্টরিতে অনুলিপি করা দরকার, এবং এর থেকে পুনরাবৃত্ত কোডটি হ্রাস করার একটি উপায় খুঁজছি:

gulp.src('./client/src/modules/signup/index.js')
  .pipe(gulp.dest('./build/public/js/signup'));

gulp.src('./client/src/modules/admin/index.js')
  .pipe(gulp.dest('./build/public/js/admin'));

এই জাতীয় কিছু:

gulp.src('./client/src/modules/(.*)/index.js')
  .pipe(gulp.dest('./build/public/js/$1'));

স্পষ্টতই উপরেরটি কাজ করে না, সুতরাং এটি করার কোনও উপায় আছে, বা একটি এনপিএম যা ইতিমধ্যে এটি করে?

ধন্যবাদ

উত্তর:


131

সর্বোত্তম উপায় হ'ল baseফাইলগুলি সোর্স করার সময় আপনার কনফিগার করা :

gulp.src('./client/src/modules/**/index.js', {base: './client/src/modules'})
  .pipe(gulp.dest('./build/public/js/'));

এটি gulpমডিউল ডিরেক্টরিটিকে আপেক্ষিক পাথ নির্ধারণের প্রারম্ভিক বিন্দু হিসাবে ব্যবহার করতে বলে ।

(এছাড়াও, আপনি /**/*.jsসমস্ত জেএস ফাইল অন্তর্ভুক্ত করতে চাইলে আপনি ব্যবহার করতে পারেন ...)


6
এটি করার আরও একটি গতিশীল উপায় থাকতে হবে - যখন এসআরসি ফাইলগুলি 2 টি ভিন্ন ডিরেক্টরি থেকে আসে এবং আপনি তাদের ডিরেক্টরিগুলি নিয়তিতে সংরক্ষণ করতে চান তখন কী হবে?
ইভান ডার্স্ট

4
@ ইভানডাস্ট আমি ওপি (উত্তর) কোড দিয়ে এই নির্দিষ্ট কেসটি পরিচালনা করেছি। বেস কনফিগ ব্যবহার এবং স্বাধীন ফাইল এবং নি: শ্বাসে ফাইল থেকে আপেক্ষিক পাথ ব্যবহার ./folder-example/**পূর্ণ ফোল্ডার ও ফাইল।
কাইও উইলসন

210

উত্তর নয়, তবে অনুসন্ধানের ফলাফলগুলিতে এই প্রশ্নের উপস্থিতিতে প্রযোজ্য।

গুল্মে ফাইল / ফোল্ডারগুলি অনুলিপি করতে

gulp.task('copy', () => gulp
  .src('index.js')
  .pipe(gulp.dest('dist'))
);

4
হুঁ ... আমার গাল্প বলে এই কাজটি সম্পূর্ণ, তবে আউটপুট ফাইলটি বিদ্যমান নেই।
টাইগুই 7

4
টাস্ক শেষ হলে গুল্পকে জানাতে আপনার স্ট্রিমটি ফিরে আসতে হবে।
মেরোট

4
আমি বিভ্রান্ত হয়েছি কেন যে উত্তরটিতে "উত্তর নয়" বলে উত্তর দেওয়া হয় তাতে প্রশ্নের উত্তর গৃহীত উত্তরগুলির চেয়ে গ্রহণযোগ্য উত্তরের চেয়ে বেশি উত্সাহ দেয়। আমি নিশ্চিত নই যে অনুসন্ধানের ইঞ্জিনগুলিকে প্রশ্নের উত্তর সরবরাহের বিরোধী হিসাবে কিছু নির্দিষ্ট কাজ করতে হবে এমন নকশাগুলির উত্তরগুলি নিয়ে আমাদের এসও ক্লিট করা উচিত। আমি মনে করি যে সাইটটি ক্রল করার সময় তারা যা পায় তার কিছু কার্যকর করার জন্য এটি অনুসন্ধান ইঞ্জিনগুলির কাজ। মাত্র আমার $ 0.02
জিংলেষ্টুলা

9
@ জিংস্টেস্টুলা সার্চ ইঞ্জিন তার কাজটি কতটা ভালভাবেই করছে তা নির্বিশেষে সার্চ ইঞ্জিনগুলির মাধ্যমে যারা এই প্রশ্নটি পৌঁছেছেন তাদের পক্ষে এটি একটি দরকারী পরিষেবা। আমি এটিকে সমর্থন করি.
jbkly

4
হাহা ঠিক বুঝতে পেরেছেন যে এটি সঠিক প্রশ্ন বা সঠিক উত্তরের চেয়ে বেশি জনপ্রিয়: পি
কর্ক স্ট্রোবেক

5
return gulp.src('./client/src/modules/(.*)/index.js')  
  .pipe(gulp.dest('./build/public/js/$1'));

আমার জন্য কাজ!


.. এমনকি এখনও, এই হল উত্তর।
ર્ક স্ট্রোবেক

4
... সুতরাং কেউ কি এটি পুনরায় লিখতে পারে যাতে এটি যেমন কাজ করে , তাই এই পৃষ্ঠায় আসা লোকেরা কোডটির সঠিক স্নিপেটের সন্ধানে আসলে কী এটি ব্যবহার করতে পারে?
ইভান ডার্স্ট

সুতরাং ... প্যারেন্স এবং rc n "ব্যাকরিফারেন্সগুলি" কি এসআরসি / ডেস্ট গ্লোবগুলিতে অনুমোদিত? ওরা রেজিেক্সস নয়, আফিক। এটি আমি যা খুঁজছি তা দেখে মনে হচ্ছে তবে ভিনাইল-এফএস ডক্স বরং .src () এবং .dest () বিকল্পগুলিতে এবং সেগুলিতে কী অনুমোদিত এবং তারা কীভাবে কাজ করে তার উপর ছড়িয়ে পড়ে।
জিঙ্গলেস্তুলা

3

ইনপুট ডিরেক্টরি গাছ সংরক্ষণের জন্য ব্যবহার সংরক্ষণ করা হবে।

.pipe(gulp.dest(function(file) {
    var src = path.resolve(SRC_FOLDER);
    var final_dist = file.base.replace(src, '');
    return DIST_FOLDER + final_dist;
}))

এটি ব্যবহার করে, আপনি এসআরসি: এ রাখতে পারেন .src(SRC_FOLDER + '/**/*.js')

অন্যান্য উত্তরগুলি আমার পক্ষে কাজ করেনি (যেমন } ব্যবহার base:করা যেমন src()কোনও কিছু প্লাগইন ডিরেক্টরি গাছকে সমতল করে তোলে ।


0

সমান্তরালভাবে ফাইল অনুলিপি করুন

gulp.task('copy', gulp.parallel(
() =>  gulp.src('*.json').pipe(gulp.dest('build/')),
() =>  gulp.src('*.ico').pipe(gulp.dest('build/')),
() =>  gulp.src('img/**/*').pipe(gulp.dest('build/img/')),
)
);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.