مقدمه ای بر Grunt

مقدمه ای بر Grunt

امروزه بیشتر توسعه دهندگان وب بیشتر وقت خود را صرف کار با تکنولوژی هایی مثل Sass، Less، HTML و JavaScript می کنند. در سال های گذشته دوران هیجان انگیزی برای توسعه دهندگان وب بوده است و فن آوری مثل Grunt به هیجان این کار افزوده است.

در این سری از آموزش، Grunt را به شما معرفی می کنم و درباره این که چگونه این ابزار می تواند در توسعه قالب یا افزونه وردپرس به ما کمک کند بحث می کنیم. ما همچنین خواهیم دید که چطور می توانیم Grunt را در پروژه شخصی خود راه اندازی کنیم. در آخر، نگاهی به ابزارهای خط فرمان می اندازیم.

 

درباره Grunt

گرانت یک ابزار اتوماسیون برای توسعه دهندگان (developers) است. در جاوا اسکریپت نوشته شده است، بنابراین خیلی مهم است که حداقل درک اندکی از جاوا اسکریپت داشته باشیم. در زیر تعریفی از Grunt که در سایت اصلی ذکر شده است آمده است:
در یک کلام: اتوماسیون. کار کمتر، هنگامی که کارهای تکراری انجام می دهید مثل فشرده سازی (minification)، کامپایل کردن (compilation)، واحد آزمایش (unit testing) و linting و غیره… در کل برای راحتی کار شما است. پس از آنکه آن را پیکربندی کردید، یک انجام دهنده ی وظیفه یا (task runner) می تواند کارهای از پیش پا افتاده را برای شما و تیم شما بطور خودکار انجام دهد. اساسا با صفر تلاش.

grunt یک ابزار اگنوستیک سیستم عامل است، بطوری که هر جیزی را که در Mac، Windows، یا Linux توسعه می دهید باید قابلیت اجرا شدن را داشته باشد. این واقعا باعث می شود در تیم های بزرگ که ترکیبی از پلت فرم های مختلف وجود دارد مشکلی پیش نیاید. بهترین قسمت این است که شما پروژه خود را با گرانت راه اندازی می کنید، به راحتی می شود با دیگران به اشتراک بگذارید. ما  این موضوع را در پست های بعدی خواهیم دید.

 

Node.js

برای آن دسته از کسانی که با این ابزار کار نکرده اند، باید بگویم که Node.js یک زمان اجرای جاوا اسکریپت است. این ابزار واقعا در چندین سال گذشته به سرعت بخشیدن به تکنولوژی هایی مثل Grunt و Bower کمک کرده است. در زیر تعریفی از Node.js که در سایت اصلی ذکر شده است آمده است:

Node.js یک پلت فرمی است که در Chrome JavaScript runtime برای ساخت و ساز سریع ساخته شده است، نرم افزاری با قابلیت شبکه مقیاس پذیر است. Node.js از envet-driven، non-blockng I/O model استفاده می کند که باعث سبک شدن و کار آمد بودن برنامه می شود، برای برنامه هایی که به صورت real-time در سراسر دستگاه های توزیع شده اجرا می شوند عالی است.

Node یکی از پیش نیازهای استفاده از grunt است و شما نیاز دارید که که بر روی سیستم و یا احتمالا سرور نصب کنید. grunt از npm استفاده می کند تا افزونه ها را نصب و مدیریت کند. شما می توانید اطلاعات بیشتر در مورد الزامات را در بخش Getting Started گرانت مطالعه کنید.

 

Gruntfile

هنگامی که کارهایی را برای نصب پروژه خود انجام دادید، حال نیاز به راهی دارید که آنها را اجرا کنید. این جایی است که فایل Gruntfile.js وارد می شود. فایل Gruntfile مشخص می کند که چه کارهایی باید شامل شود و چه گزینه هایی باید اجرا شوند.

این جایی است که شما به احتمال زیاد باید اهدف (targets) و منابع (srorces) را برای هر وظیفه مشخص کنید. به عنوان مثال می شود به فایل های از پیش کاملپایل شده scss. اشاره کرد و مکانی را که می خواهید فایل های css. در آن کامپایل شوند را مشخص کنید. شما همچنین می توانید گزینه های دیگری را برای هر یک از پلاگین های دسترس خود مشخص کنید. که این کار معمولا برای هر پلاگین کمی فرق می کند و باید مستندات آن پلاگین را مطالعه کنیم.

 

Tasks (وظایف)

یک task راهی ساده برای اجرای گروهی از پلاگین ها است. شما می توانید بطور پیش فرض یک وظیفه را هنگام اجرا grunt تعریف کنید. شما می توانید از watch task استفاده کنید، این باعث می شود که بطور خودکار وظایف و پلاگین ها را وقتی که تغییراتی در پروژه شما اعمال شود اجرا کند. نگران نباشید در پست های بعدی با این موضوع آشنا می شویم.

 

خلاصه

Grunt قطعا یک ابزاری است که اگر شما می خواهید به توسعه دهنده وردپرس تبدیل شوید باید با این ابزار آشنا باشید.

اکوسیستم گرانت بزرگ است و هر روز رشد می کند. با صدها پلاگین که می توانید انتخاب کنید، با استفاده از Grunt می توانید با کمترین تلاش کارها را انجام دهید. اگر کسی چیزی را که شما نیاز دارید را ایجاد نکرده است، افزونه ی گرانت خود را بسازید و آن را در npm منتشر کنید.

اگر شما در حال حاضر در پروژه خود از این ابزار استفاده نمی کنید، پس شما قطعا باید آن را در نظر بگیرید.

 

منابع