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

- visibility ٠ mode_comment

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

grund

در این جلسه قصد داریم در مورد پلاگین grunt-concurrent صحبت کنیم و با استفاده از اون کاری کنیم که وظایفی که مد نظرمون هست بصورت همزمان و موازی با هم اجرا بشن و خروجی اونا ساخته بشه و در اختیارمون قرار بگیره. این ابزار زمانی که با وظایف سنگین روبرو هستیم خیلی میتونه بهمون کمک کنه. مثلا هم اکنون شرایط طوری هست که وظایف باید یکی پس از دیگری اجرا بشن و مثلا تا زمانی که وظیفه sass به پایان نرسیده، وظیفه بعدی اون اجرا نمیشه. حالا اگر sass مثلا 20 ثانیه طول بکشه، باید منتظر بمونیم تا وظیفه بعدی اون که coffee هست اجرا بشه. معمولا بهتره برای وظایفی که زیاد طول میکشن، مثل Sass و coffee از این ابزار استفاده کنیم و اونا رو بصورت موازی و همزمان اجرا کنیم. در ابتدا باید این پلاگین رو در پروژه خودمون نصب کنیم. برای اینکار عبارت زیر رو در cmd قرار میدیم:

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

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

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

همونطور که در ابتدا گفتیم وظایف تا اینجای کار بصورت یکی پس از دیگری اجرا میشدن. همونطور که میدونید ما میتونیم به وسیله متد registerTask یک وظیفه رو برای grunt تعریف کنیم و زمانی که این کلمه در cmd زده میشه، وظایف دیگه ای رو صدا میزنه و اجرا میکنه. مثلا عبارت زیر رو در نظر بگیرید:

میبینید که بعنوان ورودی اول اون کلمه default رو قرار دادیم و برای ورودی دوم اون یک آرایه از وظایف رو قرار دادیم. هر وقت که کلمه grunt به تنهایی در cmd وارد بشه، وظیفه default صدا زده میشه و default هم همه وظایفی که درون آرایه هستن رو صدا میزنه و یکی پس از دیگری اجرا میشن. فرض کنید میخام دو تا از وظایفی که سنگین تر از بقیه هستن رو بصورت جداگانه در بیارم. برای اینکار بصورت زیر عمل میکنیم:

این خط کد رو به انتهای gruntfile اضافه میکنم. حالا اگر عبارت grunt non-concurrent رو در cmd تایپ کنیم و اینتر بزنیم، در ابتدا وظیفه sass و بعد از اون وظیفه coffee اجرا میشه:grunt non concurrent

دیدید که وظایف مورد نظر یکی پس از دیگری اجرا شدن. بدلیل اینکه فایلهای Sass و coffee ما خیلی کوچک بودن، این وظایف سریع انجام شدن، وگرنه هر چه فایل بیشتر بشه، این وظایف سنگین تر میشن و اجراشون طول میکشه. حالا برای اینکه بصورت concurrent اونا رو اجرا کنیم، از این ابزار استفاده میکنیم. ابتدا یک وظیفه بنام concurrent بصورت زیر میسازیم:grunt concurrent

حالا تنها کاری که باید بکنید اینه که درون cmd عبارت grunt concurrent رو اجرا کنید:grunt concurrent 2

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

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

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

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

موفق باشید

یا علی

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

نیاز به لاگین

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