Deno 2.8: بزرگترین آپدیت مینور تاریخ Deno
خلاصهٔ کاملتر
Deno 2.8 بزرگترین نسخه مینور این رانتایم تا به حال معرفی شده و شش subcommand جدید، بهبود گستردهی سازگاری با Node.js، و افزایش سرعت قابل توجه در حوزههای مختلف رو با خودش آورده.
subcommandهای جدید شامل موارد زیر میشن:
- deno audit fix: آسیبپذیریهای پکیجهای npm رو بهصورت خودکار برطرف میکنه — پکیجها رو تا آخرین نسخهی پَچشدهای که با محدودیتهای semver سازگاره آپگرید میکنه. ارتقاهایی که نیاز به major version دارن جداگانه نشون داده میشن.
- deno bump-version: شماره نسخه رو در deno.json یا package.json آپدیت میکنه. در workspace، میتونه از تاریخچهی Conventional Commits هم برای تعیین نوع bump استفاده کنه.
- deno ci: یه subcommand مخصوص CI که مطمئن میشه deno.lock وجود داشته باشه، node_modules قبلی رو حذف میکنه و نصب رو با --frozen اجرا میکنه تا محیط کاملاً بازتولیدپذیر باشه.
- deno pack: پروژههای Deno یا JSR رو به یه tarball قابل انتشار روی npm تبدیل میکنه — TypeScript رو به JS ترجمه میکنه، فایلهای .d.ts میسازه، و specifierها رو برای اکوسیستم npm بازنویسی میکنه.
- deno transpile: بدون هیچ bundling یا تغییر ماژول، فقط typeها رو از TypeScript/JSX حذف میکنه و JavaScript خالص تولید میکنه.
- deno why: توضیح میده چرا یه پکیج نصب شده، درست مثل npm explain یا pnpm why.
پیشوند npm: دیگه اجباری نیست. از این نسخه میتونی مثل Node بنویسی deno add express و Deno خودش میفهمه که منظورت npm هست. پیشوند jsr: همچنان برای پکیجهای JSR لازمه تا دو رجیستری با هم اشتباه گرفته نشن.
# قبل از ۲.۸
$ deno add express
error: express is missing a prefix. Did you mean `deno install npm:express`?
# ۲.۸
$ deno add express
Add npm:express@5.2.1
سازگاری با Node.js جهش بزرگی داشته: نرخ پاسشدن تستهای رسمی Node از ۴۲٪ در نسخه ۲.۷ به ۷۶.۴٪ در ۲.۸ رسیده (۳۴۰۵ از ۴۴۵۷ تست). در مقایسه، Bun 1.3.14 روی همین مجموعه تست فقط ۴۰.۶٪ داره. ماژولهای داخلی Node هم حالا lazy-load میشن تا استارتاپ برنامهها سریعتر باشه.
عملکرد تقریباً در همه جا بهتر شده. نصب سرد npm با ۳.۶۶ برابر سرعت انجام میشه (از ۳۳۱۹ms به ۹۰۶ms)، throughput node:http بیش از ۲ برابر شده، و عملیات base64 با استفاده از کتابخونهی simdutf حدود ۳ برابر سریعتر اجرا میشه.
import defer هم به Deno اضافه شده. این ویژگی از پیشنهاد TC39 گرفته شده و بهت اجازه میده ماژولها لود بشن ولی کدشون اجرا نشه تا زمانی که واقعاً به یکی از exportهاشون دسترسی پیدا کنی — یه راه ساده برای کاهش زمان استارتاپ در مسیرهایی که همهی ماژولها لازم نیستن.
نکات کلیدی:
- deno audit fix آسیبپذیریهای npm رو خودکار برطرف میکنه
- deno pack پروژه رو مستقیم به tarball npm تبدیل میکنه
- deno ci نصب کاملاً بازتولیدپذیر برای محیطهای CI فراهم میکنه
- پیشوند npm: دیگه در CLI لازم نیست
- سازگاری با Node.js از ۴۲٪ به ۷۶.۴٪ رسیده
- نصب سرد npm حالا ۳.۶۶ برابر سریعتره
- import defer برای lazy evaluation ماژولها پشتیبانی میشه




