ابزارهای توسعه•

انتشار Bun نسخه 1.3.1: بهبودهای معماری در بسته‌بندی و مدیریت پکیج

نسخه 1.3.1 بن (Bun) را با سرعت ساخت ۲ برابر بیشتر، درون‌خطی‌سازی (inlining) دستور import.meta در CommonJS، سازگاری ارتقایافته با Node.js و به‌روزرسانی‌های قدرتمند مدیر پکیج کاوش کنید.

OP
OPA Release DeskWIRE
•5 min read
انتشار Bun نسخه 1.3.1: بهبودهای معماری در بسته‌بندی و مدیریت پکیج

⚠️ Breaking Changes & Migration Caveats

سازگاری کامل رو به عقب با نسخه‌های قبلی.

نمای کلی اجرایی و اهمیت معماری

نسخه 1.3.1 بن (Bun) به‌عنوان یک نسخه قدرتمند در چرخه حیات این ران تایم عرضه شده است که به ۱۰۳ مشکل گزارش‌شده پاسخ می‌دهد و ۱۷۲ رأی مثبت از سوی توسعه‌دهندگان در سراسر جهان را شامل می‌شود. این انتشار بر صیقل دادن ساختاری تمرکز دارد و نقاط اصطکاک کلیدی در زیرسیستم‌های باندلر (bundler)، ترنسپایلر، اجراکننده تست و مدیر پکیج را هدف قرار می‌دهد. تیم مهندسی با اولویت‌بندی گلوگاه‌های عملکردی هدفمند — به‌ویژه در فایل‌سیستم‌های مبتنی بر یونیکس و درخت‌های وابستگی پیچیده — به پویایی خود در تثبیت جایگاه Bun به‌عنوان یک جایگزین با عملکرد بالا و بی‌دردسر برای ابزارهای قدیمی جاوا اسکریپت ادامه می‌دهد. مقیاس این نسخه اصلاحی نشان‌دهنده یک فاز پایدارسازی تهاجمی است و تضمین می‌کند که بارهای کاری در سطح سازمانی در حال اجرا روی macOS، لینوکس و ویندوز می‌توانند بدون قربانی کردن قطعیت یا صحت، از Bun بهره‌برداری کنند.

از منظر معماری، نسخه 1.3.1 شکاف‌های حیاتی بین عملکرد بومی و انتظارات اکوسیستم Node.js را پر می‌کند. معرفی استراتژی‌های بهینه‌سازی کش فایل‌سیستم برای پروژه‌های سنگین از نظر پیوند نمادین (symlink) و ادغام عمیق‌تر بسته‌بندی CJS، نحوه کامپایل مونوپروژه‌های مدرن (monorepos) را دگرگون می‌کند. علاوه بر این، بهبودهای مدیر پکیج به موارد خاص دیرینه در حل وابستگی‌ها و استراتژی‌های ارتقا (hoisting) رسیدگی می‌کند. با کاهش سربار در هنگام نصب‌های بدون وابستگی همتا (zero-peer) و معرفی تجزیه پیکربندی دقیق برای .npmrc، بن لایه زیرساختی خود را مستحکم می‌کند و به تیم‌ها اجازه می‌دهد برنامه‌های قدیمی پیچیده را با حداقل اصطکاک و حداکثر توان عملیاتی مهاجرت دهند.

بهبودهای هسته و ارگونومی توسعه‌دهنده

چشمگیرترین پیشرفت عملکردی در Bun v1.3.1، افزایش سرعت ۲ برابری محلی در عملیات bun build روی سیستم‌عامل macOS است که به‌طور خاص برای پروژه‌های دارای پیوندهای نمادین سنگین بهینه‌سازی شده است. مونوپروژه‌هایی که به شدت به پیوندهای نمادین عمیقاً تو در تو متکی هستند، پیش از این از سربار بیش از حد پیمایش فایل‌سیستم رنج می‌برند؛ اکتشافات حل جدید، مدیریت توصیف‌گر فایل و ردیابی پیوند نمادین را بهینه‌سازی کرده و زمان‌های کامپایل را به شدت کاهش می‌دهند. علاوه بر این، باندلر اکنون کامنت‌های قانونی را در مپ‌های سورس تولیدشده حفظ می‌کند و انطباق با چارچوب‌های لایسنس را تضمین می‌کند، در حالی که --format=cjs به طور بومی import.meta را درون‌خطی می‌کند و یک شکاف مشخصات حیاتی را برای اهداف خروجی CommonJS می‌بندد.

ارگونومی توسعه‌دهنده در bun test و مدیر پکیج تقویت چشمگیری دریافت می‌کند. اجراکننده تست اکنون شامل یک ابزار سراسری vi برای تسهیل مسیرهای مهاجرت Vitest است، در کنار پرچم‌های --pass-with-no-tests و --only-failures برای ادغام انعطاف‌پذیرتر خط لوله CI/CD. مدیریت پکیج نیز به همین ترتیب ارتقا یافته است: فایل‌های .npmrc اکنون فیلدهای احراز هویت :email را به درستی تجزیه می‌کنند، توالی‌های نصب هنگام شناسایی وابستگی‌های همتا صفر، مراحل اعتبارسنجی غیرضروری را دور می‌زنند، و ارتقای انتخابی (publicHoistPattern و hoistPattern) کنترل دقیقی را به ساختارهای نصب ایزوله می‌آورد. در نهایت، سازگاری با APIهای Node.js با افزودن fs/promises FileHandle.readLines()، در کنار پچ‌های پایداری حیاتی برای bunx و کامپایل react-jsxdev در ویندوز گسترش می‌یابد.

ماتریس مقایسه معماری

ویژگی / زیرسیستم مبنای قبلی (v1.3.0) Bun نسخه 1.3.1 تأثیر معماری
بسته‌بندی سنگین از نظر پیوند نمادین (macOS) سربار پیمایش استاندارد اجرای ساخت ۲ برابر سریع‌تر کش بهینه‌شده و استفاده مجدد از توصیف‌گر فایل
کامپایل خروجی CJS حفظ مرجع‌های import.meta درون‌خطی‌سازی بومی import.meta هم‌راستایی بهتر با ران‌تایم‌های قدیمی CommonJS
حل مدیر پکیج بررسی‌های وابستگی همتا جهانی مسیرهای شتاب‌یافته برای گراف‌های بدون همتا کاهش سربار I/O در هنگام نصب‌های سرد
قابلیت‌های اجراکننده تست ادعاها و تطبیق‌دهنده‌های استاندارد افزودن vi سراسری، --pass-with-no-tests مسیر مهاجرت ساده‌شده از Vitest
پوشش API فایل‌سیستم توابع اولیه جزئی FileHandle پیاده‌سازی FileHandle.readLines() برابری پیشرفته استریم و خط‌خوانی Node.js

تغییرات ناسازگار و هشدارهای مهاجرت

نسخه 1.3.1 بن کاملاً با نسخه‌های قبلی در سری v1.x سازگار است، به این معنی که هیچ تغییر نگارشی یا منسوخ‌شدنی که کدهای برنامه موجود را خراب کند، معرفی نشده است. با این حال، تیم‌هایی که پیکربندی‌های ارتقای انتخابی جدید (publicHoistPattern و hoistPattern) را اتخاذ می‌کنند، باید طرح‌بندی فضای کاری خود را به طور کامل بررسی کنند تا مطمئن شوند پکیج‌هایی که به طور ضمنی به ارتقای flat-node_modules متکی هستند، به درستی حل می‌شوند. به طور مشابه، درون‌خطی‌سازی import.meta تحت --format=cjs ممکن است رفتار زمان اجرای خطوط لوله باندلر را که قبلاً انتظار ارزیابی معوق متادیتای ماژول را در بسته‌های CommonJS داشتند، تغییر دهد.

راهنمای گام‌به‌گام ارتقا

ارتقای محیط‌های محلی و CI خود به Bun نسخه 1.3.1 مستفزم یک دستور واحد است و پس از آن بررسی پیکربندی برای ویژگی‌های جدید انجام می‌شود.

گام ۱: ارتقای سراسری Bun

اسکریپت ارتقای رسمی را برای دریافت آخرین نسخه باینری اجرا کنید:

bun upgrade

با بررسی نسخه فعال، اطمینان حاصل کنید که نصب موفقیت‌آمیز بوده است:

bun --version
# خروجی مورد انتظار: 1.3.1

گام ۲: استفاده از پرچم‌های تست جدید در CI

پرچم‌های اجرای تست جدید را در اسکریپت‌های package.json خود بگنجانید تا خطوط لوله یکپارچه‌سازی مداوم را ساده کنید:

{
  "scripts": {
    "test:ci": "bun test --pass-with-no-tests --only-failures"
  }
}

گام ۳: پیکربندی ارتقای انتخابی (اختیاری)

اگر یک مونوپروژه پیچیده را با استفاده از نصب‌های ایزوله مدیریت می‌کنید، الگوهای ارتقا را به پیکربندی ریشه پروژه خود اضافه کنید تا دید وابستگی را کنترل کنید:

# .npmrc
publicHoistPattern[]=*eslint*
publicHoistPattern[]=*typescript*
hoistPattern[]=my-custom-package
#Bun#v1.3.1#DevTools#Release#Changelog
E-E-A-T VerifiedRelease Intelligence & Editorial Methodology

OPA Release analyzes upstream repository commits, official changelogs, and runtime telemetry assisted by automated synthesis pipelines and verified under our Editorial Standards. Review our Affiliate Disclosure and Software Disclaimer before deploying changes to production environments.

OPA NETWORK EXPLORER

Deep Dive Across the Ecosystem