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

- visibility ۰ mode_comment

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

grund

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

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

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

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

برای تست کردن این پلاگین و آشنایی با کاربرد اون یک پوشه بنام toCopy در پوشه development میسازیم و فایلهایی که در زیر قرار میدم رو درونش قرار بدین.

بعد از اینکه فایل فشرده بالا رو دانلود کرده، اون رو از حالت فشرده خارج کنید. دو پوشه با نامهای js و css درون اون قرار داره و هر کدوم از اونا شامل تعدادی فایل هستن. این دو پوشه رو بردارید و درون پوشه toCopy که در بالا ساختیم قرار بدین.grunt install copy 4

حالا قصد داریم پوشه toCopy رو درون پوشه final کپی کنیم. در این بین حالتهای مختلفی رو براتون شبیه سازی میکنم که بصورت کامل با اون آشنا بشید. در ابتدا یک وظیفه بنام clean بعد از وظایف تعریف شده گذشته میسازیم و sub task با نام main هم درون اون قرار میدیم:grunt clean task

حالا باید آدرس مبدا و مقصد رو برای این وظیفه مشخص کنیم. در تمام قسمتهای قبلی ما با استفاده از آدرس دهی استاتیک این مسیرها رو مشخص میکردیم. استاتیک روش آسونتری هست. اما با استفاده از روش داینامیک میتونین کارهای پیشرفته تری رو انجام بدین و یخورده هم کار کردن با اون سختتره. در این رابطه میتونین به این لینک برید و بیشتر با این روش آشنا بشید. برای این کار بصورت زیر عمل میکنیم:grunt clean task 2

همونطور که دیدید یک سری ویژگی درون اون قرار داده شده.

  • expand : اگر بخواید از مسیردهی داینامیک یا dynamic استفاده کنید، باید این ویژگی رو برابر با true قرار بدین
  • cwd : این کلمه مخفف Current Working Directory هست. شما هر چیزی اینجا قرار بدین، قبل از مقدار ویژگی src قرار میگیره و هدف ورودی رو مشخص میکنه.
  • src : هر آدرس و الگویی که در اینجا قرار بدین در انتهای cwd قرار میگیره و مبدا رو مشخص میکنه. مثلا در بالا اگر همه رو پشت سر هم قرار بدیم، بصورت development/toCopy/** میشه. با استفاده از این الگو به گرانت میگیم که پوشه toCopy با هر چیزی که داخلش هست رو میخام کپی کنم.
  • dest : اینجا هم میتونین مقصد کپی شدن رو مشخص کنید. میبینید که گفتیم درون پوشه final و درون پوشه pasted فایلها رو برام بریز.

در جلسه قبلی در مورد الگوها براتون صحبت کردم و اگر خواستید بیشتر بدونید میتونین به این لینک سری بزنید.

حالا اگر cmd رو باز کنید و grunt copy رو اجرا کنید، بصورت زیر خواهد بود:grunt clean task 3

میبینید که گفته شده 3 دایرکتوری و 6 فایل کپی شدن. حالا اگر پوشه final رو ببینید، یک پوشه بنام pasted درونش ساخته شده و فایلهای مورد نظر درونش قرار گرفتن.

حالا اگر بخوایم یه مقدار پیشرفته تر از آدرس دهی Dynamic بهره ببریم، میتونیم ویژگی های filter و flatten هم اضافه کنیم:grunt clean task 4

دیدید که درون ویژگی filter بیان کردیم که فقط فایلها رو برامون کپی کنه و بخاطر همین isFile قرار دادیم. بعد از اون با استفاده از ویژگی flatten و true قرار دادن اون همه مسیرها پاک میشه و همه فایلها بصورت مستقیم و flat در همون پوشه pasted قرار داده میشن.

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

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

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

موفق باشید

یا علی

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

نیاز به لاگین

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