توسعه جاوااسکریپت در سالهای اخیر تحولات چشمگیری را پشت سر گذاشته است و ابزارها و محیطهای اجرایی جدید بهطور مداوم مرزهای عملکرد و تجربه توسعهدهنده را جابهجا میکنند. یکی از تازهترین ورودها به این عرصه، بون جیاس Bun است؛ یک محیط اجرایی مدرن جاوا اسکریپت که وعده سرعت بینظیر، سادگی و سازگاری را میدهد. در ادامه به Bun چیست و اهداف آن می پردازیم.
اهداف Bun چیست ؟
Bun یک Runtime جدید جاوا اسکریپت است که برای ارائه سرویس های مدرن برای اکوسیستم جاوا اسکریپت ساخته شده است. این Runtime جدید برای جایگزین کردن Nodejs ساخته شده است و سه هدف اصلیل طراحی دارد.
- سرعت - Bun سریع شروع می شود و سریع اجرا می شود. این Runtime بر روی هسته JavascriptCore ساخته شده است که موتور جاوا اسکریپت است که برای مرورگر Safari ساخته شده است. زمان شروع سریع به معنای برنامه های سریع و API های سریع است.
- API های منعطف و خوش تعریف Bun حداقل مجموعه ای از API های بسیار بهینه شده را برای انجام کارهای رایج، مانند راه اندازی یک سرور HTTP و نوشتن فایل، ارائه می دهد.
- تجربه توسعه (DX) منسجم - Bun یک جعبه ابزار کامل برای ساخت برنامه های جاوا اسکریپت، از جمله Package Manager، Test Runner و Bundler است.
Bun به عنوان جایگزینی برای Node.js طراحی شده است. که بسیاری از API های Node.js و Web API از جمله fs، path، Buffer و موارد دیگر را پیادهسازی کرده است.
هدف Bun اجرای بیشتر جاوا اسکریپت سمت سرور جهان و ارائه ابزارهایی برای بهبود کارایی، کاهش پیچیدگی و افزایش بهره وری توسعه دهندگان است.
قابلیت های برجسته Bun چیست ؟
در این پست، برخی از ویژگی های برجسته Bun را شرح می دهیم.
سازگاری با Node.js
Bun قصد دارد جایگزینی برای Node.js باشد. Bun متغیر های Global مانند Buffer و process و ماژولهای داخلی مانند fs و path را پیادهسازی میکند.
مدیریت پکیج های Node Modules به شکل بهینه
قوانین پیچیده پیرامون CommonJS، ESM، پسوند فایل، اولویت Resolution پکیج ها و پیکربندی های package.json را فراموش کنید. با Bun بدون فکر کردن به این مسائل، پکیج ها را به شکل ساده مدیریت کنید.
پشتیبانی از JSX
Bun به صورت داخلی دستور JSX را به جاوا اسکریپت استاندارد، با توجه به قوانین تبدیل کد در Tsconfig.json، تبدیل می کند.
کارایی (Performance) بالا
Bun بر روی موتور JavaScriptCore ساخته شده است و یک نسخه سفارشی از این موتور را به کمک زبان سیستمی و سطح پایین Zig گسترش میدهد. این دو موضوع باعث شده است که اجرای کد در این Runtime، از Nodejs سریع تر باشد.
پشتیبانی از Typescript
TypeScript یک شهروند درجه یک در Bun است. فایل های ts و tsx را مستقیماً اجرا کنید. Bun به تنظیمات پیکربندی شده شما در tsconfig احترام می گذارد و این قوانین را در اجرای کد، تاثیر می دهد.
حالت Hot Reload
Bun می تواند به شکل هوشمند از تغییرات کد در حالت توسعه، با خبر شده و به طور خودکار Process را با تغییر هر فایل، مجدداً راه اندازی می کند.
پشتیبانی از همان Node Module قدیمی
با Bun، همچنان از package.json برای مدیریت Dependency های خود استفاده می کنید. برای مدیریت Package ها می توانید از همان دستور bun به جای npm استفاده کنید و سرعت بالاتری در نصب Package ها داشته باشید.
پشبیبانی از استاندارد های Web APIs
Bun تمامی API های استاندارد وب را که می شناسید و دوست دارید، از جمله fetch، ReadableStream، Request، Response، WebSocket و FormData را به شکل Native پیاده سازی می کند.
اجرای کد Shell به شکل خیلی ساده
Bun.$ یک مفسر، پوسته و توابع هسته ای bash را در سیستم عامل های مختلف پیادهسازی میکند. این امر اجرای اسکریپت به کمک جاوا اسکریپت را برای وظایف devops آسان می کند.
Bun یک Package Manger سریع است
Bun همچنان وابستگیهای شما را در node_modules مانند npm و سایر مدیریتهای بسته نصب میکند — این کار را سریعتر انجام میدهد. برای استفاده از Bun به عنوان مدیر بسته، نیازی به استفاده از Bun Runtime ندارید.
Bun از سریعترین System Call موجود در هر سیستم عامل استفاده میکند تا نصبها را سریعتر از آنچه فکر میکنید ممکن کند. یک بار دانلود کنید، هر جا نصب کنید. Bun فقط یک بار نسخه خاصی از یک بسته را از npm دانلود می کند. نصب های بعدی آن را از حافظه پنهان کپی می کنند.
Bun یک Test Runner
زمان راه اندازی سریع Bun در Test Runner، چشم گیر است، شما باور نخواهید کرد که تست های شما چقدر سریعتر اجرا می شوند. API های تست در Bun، همگی بر اساس API های کتابخانه محبوب Jest هستند و تمامی آن API های در Bun پشتیبانی می شوند. سازگار با Jest یک API انتظار () به سبک Jest ارائه می کند. به تست bun بدون تغییر کد بروید. هنگامی که فایلها با استفاده از حالت تماشای آنی Bun تغییر میکنند، از پرچم --watch برای اجرای مجدد تستها استفاده کنید.
پس Bun دقیقا چیست ؟
Bun چیست ؟ در درجه اول یک Runtime برای اجرای سریع کد های JS و TS است. اما علاوه بر این، یک مجموعه ابزار برای سریع تر کردن توسعه و بهبود Developer Experience ارائه می دهد.
با Bun پروژه های JavaScript و Typescript را توسعه دهید، Test اجرا کنید و Package نصب کنید.
از Bun می توان به عنوان چایگزین ابزا های محبوب زیر، استفاده کرد.
- Nodejs- به عنوان Runtime مربوط به Javascript
- Npm و Pnpm و yarn – به عنوان نرم افزاری برای مدیریت Dependency های Javascript
- Crossenv – به عنوان ابزاری برای تزریق متغیر محیطی به نرم افزار Javascript
- Jest – به عنوان یک Test Runner
- Tsx و Ts-node – به عنوان یک Transpiler برای تبدیل کد Typescript به Javascript
- Nodemon – به عنوان یک نرم افزار برای اجرای مجدد کد Javascript پس از تغییر Source Code
نصب و اجرای Bun
برای نصب در ویندوز:
powershell -c "irm bun.sh/install.ps1 | iex"
برای نصب در سیستم عامل های مبتنی بر Unix
curl -fsSL https://bun.sh/install | bash
پس از دانلود و نصب، یک CMD یا Terminal جدید باز کنید و دستور زیر را وارد کنید.
bun -v
حال که فهمیدید Bun چیست و با ویژگی های آن آشنا شدید، می توانید از دیگر مقالات و دوره های سایت Evolearn | ایوولرن دیدن کنید.