آموزش استفاده از Grunt برای مدیریت وظایف تکراری - Grunt (جلسه 35) - پاک کردن فایلها و فولدرها

- visibility ٠ mode_comment

در این مطلب با ادامه آموزش Grunt در خدمتتون هستیم.

grund

در این جلسه قصد داریم در مورد پلاگین grunt-contrib-clean صحبت کنیم و با استفاده از اون فایلها و فولدرهای مورد نظرمون رو پاک کنیم و دیگه لازم نباشه که هر بار خودمون فایلها و پوشه های خاصی رو پاک کنیم. این ابزار با قدرت زیادی فایلهای مورد نظرتون رو پاک میکنه و چون از ابزار rimraf استفاده میکنه از همه سیستم عامل ها پشتیبانی میکنه. در ابتدا باید این پلاگین رو در پروژه خودمون نصب کنیم. برای اینکار عبارت زیر رو در cmd قرار میدیم:

بعد از اینکار اینتر میزنیم:grunt install clean

میبینید که این پلاگین بدون ارور درون پروژه ما نصب شده و حالا اگر package.json رو ببینید، بصورت زیر بروز رسانی شده:grunt install clean 2

حالا باید این بسته رو درون gruntfile.js لود کنیم:grunt install clean 3

حالا نوبت به این میرسه که یک task برای وظیفه clean بسازیم و با استفاده از اون کارهای مورد نظرمون رو انجام بدیم. یک پوشه بنام toDelete در پوشه development میسازیم و پوشه ها و فایلهای مختلفی رو با ساختار زیر درونش قرار میدیم:grunt clean task

میبینید که درون پوشه toDelete، دو پوشه بنامهای css و js قرار دادیم و در هر کدوم تعدادی فایل قرار دادیم. هدف ما اینه که این فایلها و فولدرها رو به روشهای مختلف حذف کنیم. به سه صورت میتونیم وظیفه clean رو بسازیم.

1. کوتاه و ساده بدون تنظیمات:

برای اینکار فقط کافیه بصورت زیر عمل کنیم:

grunt clean task 2

دیدید که اصلا options وجود نداره و فقط یک آرایه که شامل مسیرهایی که قصد داریم حذفشون کنیم میشه، وجود داره. دیدید که میخایم دو پوشه css و js رو حذف کنیم. حالا اگر درون cmd عبارت grunt clean رو بزنید:grunt clean task 3

دیدید که وظایف مورد نظر انجام شد و پوشه های مورد نظر حذف شدن.

2. متوسط و با تنظیمات کلی:

برای اینکار بصورت زیر عمل میکنیم:

دیدید که دو sub task بنام های javascript و stylesheet ساختیم و مسیرهای مورد نظر رو بهش دادیم. در اینجا یک options کلی قرار داده شده و درون اون ویژگی no-write برابر با true قرار داده شده. با اینکار به grunt میگیم که حق پاک کردن این موارد رو نداری. اگر دستور grunt clean رو مجددا اجرا کنیم:grunt clean task 4

میبینید که عبارت Done بمعنای موفقیت به ما نمایش داده میشه، اما اگر پروژمون رو نگاه کنیم خواهیم دید که پوشه ها سر جاشون هست و این مورد بخاطر ویژگی no-write هست.

3. طولانی و تنظیمات خصوصی:

برای اینکار بصورت زیر عمل میکنیم:

دیدید که دو sub task بنام های javascript و stylesheet ساختیم و مسیرهای مورد نظر رو بهش دادیم. در اینجا برای هر sub task بصورت اختصاصی یک options قرار دادیم و تنظیمات اونا رو متفاوت از همدیگر کردیم. ویژگی force رو اگر برابر با true قرار بدیم، باعث میشه که بزور و تحت هر شرایطی پوشه مورد نظر رو پاک کنه. اگر دستور grunt clean رو مجددا اجرا کنیم:grunt clean task 5

اگر پوشه ها رو ببینید، خواهید دید که پوشه css حذف شده، اما js سرجاش باقی مونده.

چنتا الگو یا Globbing Pattern متداول استفاده میشه که میخام بهتون بگم:

Grunt برای تطابق الگو و مسیر وارد شده با فایلهای پروژتون از دو ابزار minimatch و node-glob استفاده میکنه و شما میتونین با مطالعه اونا بیشتر با این قضیه آشنا بشید.

  • '/development/toDelete/js' : پوشه js و تمام محتویات اون رو پاک میکنه
  • '**/development/toDelete/js' : دقیقا مثل مورد بالایی عمل میکنه
  • '*/development/toDelete/js' : همه محتویات اون پوشه رو پاک میکنه، اما خود پوشه js پاک نمیشه
  • development/toDelete/js/*/ : این مورد باعث میشه که همه فایلهای درون پوشه js باقی بمونن، اما همه زیر پوشه ها حذف میشن
  • 'development/toDelete/js/*.js' : این کار باعث میشه که تمام فایلهای با فرمت js درون پوشه js حذف بشن. اما فایلهای js که درون زیرپوشه های پوشه js هست باقی میمونن
  • 'development/toDelete/js/**/*.js' : با اینکار همه فایلهای با فرمت js درون پوشه و زیرپوشه ها حذف میشن.
  • '!development/toDelete/js/js1.js' : همونطور که دیدید در ابتدای این الگو یک ! قرار داده شده و به grunt میگه که از این فایل صرف نظر کن و اون رو حذف نکن.

برای مطالعه بیشتر در مورد این پلاگین به این لینک مراجعه کنید.

در جلسات بعدی بیشتر در مورد Grunt صحبت میکنیم.

امیدوارم از این جلسه خوشتون اومده باشه.

موفق باشید

یا علی

comment دیدگاه کاربران
Roohollah Taeb

با عرض سلام و تشکر از آموزش های شما
لطفا مثل بقیه سری های آموزشی در این لینک http://www.7learn.com/vip/vip-page#fLinks این مجموعه رو هم به صورت یه فایل پی دی اف کامل قرار بدید.
پیشاپیش ازتون ممنونم

سلام دوست عزیز
این درخواست رو برای آقای آوند ایمیل کنید باهاتون همکاری خواهند کرد
موفق باشید

بسیارعالی بود ممنون از مطالب 😛 بسیار زیباتون

موفق باشید

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.