اگر جاوااسکریپت کار باشید حتما تا به حال با یکی ماژول باندلر (module bundler) مخصوص این زبان کار کردهاید. بسیاری از برنامهنویسان جاوااسکریپت با دیدن تداول استفاده از Webpack، این ماژول باندلر رو انتخاب میکنند یا حداکثر یکی دو مقاله در رابطه با مقایسه این ماژول باندلر ها می خوانند و چشم رو به روی بقیه می بندند. ( البته هدف ما در اینجا محکوم کردن webpack نیست بلکه به دنبال معرفی Rollup هستیم )...
در بینا بین ماژول باندلر های جاوااسکریپت به یک ماژول باندلر خوش دست، سریع، بر پایه سیستم ماژول خود JS، همراه با خروجی واضح تر، سبک و کوچک شده ای (minified) بر می خوریم؛ Rollup!
Rollup ماژول باندلری است که با سینتکس ماژول خود ES6 کار میکند البته با استفاده از پلاگین های فراوان این ماژول باندلر میتواند از سیستم ماژول های دیگری مانند: CommoJS و AMD نیز بهره ببرید. خروجی این ماژول باندلر به مراتب واضح تر و خوانا تر از خروجی Webpack است همچنین سبک تر!
Tree-shaking
یکی قابلیتهای این ماژول باندلر که جای مانور فراوان دارد!
Tree-shaking به شما اجازه میدهد هر چندتا کتابخانه و ماژول که می خواهید به پروژه خود اضافه کنید بدون ترس از اضافه شدن وابستگی (dependencies) های بلااستفاده به پروژه!
با استفاده از Tree-shaking، خروجی فقط شامل وابستگی ها و توابعی میشود که در کد استفاده شدهاند؛ باعث کاهش حجم اضافی کد و بهینه تر شدن آن میشود.
Plugins
از ویژگیهای برجسته این ماژول باندلر قابلیت توسعه پذیری بسیار بالا و آسان آن میباشد، Rollup در عین ساده نگه داشتن کار گزینههای بسیار زیادی برای نوشتن پلاگین در اختیارتان میگذارد بر خلاف webpack، فقط یک نوع پلاگین در این ماژول باندلر وجود دارد اما همین یک نوع همه کار میتواند بکند!
یادگیری نوشتن پلاگین برای Rollup بسیار ساده است؛ شاید 1 ساعت زمان هم برایش زیاد باشد!
تعداد زیادی پلاگین مفید از قبل برای این ماژول باندلر نوشته شده و در دسترس است.
امیدوارم پس از خواندن این مقاله نیم نگاهی به Rollup بیندازید از این رو دو منبع زیر بسیار مفید واقع میشوند:
https://github.com/rollup/rollup/wiki
https://rollupjs.org/guide/en