Deno 2.8: بزرگترین نسخه فرعی تا الان
خلاصهٔ کاملتر
Deno 2.8 با یه سری زیردستور (subcommand) تازه معرفی شده که هر کدوم یه گپ واقعی در workflow توسعهدهندهها رو پر میکنن. deno audit fix آسیبپذیریهای npm رو شناسایی میکنه و پکیجهای آسیبدیده رو به نزدیکترین نسخهی اصلاحشدهای که با constraints نسخهبندی سازگاره آپگرید میکنه — ارتقاهای major که نیاز به تصمیم دستی دارن جداگانه لیست میشن. deno bump-version نسخهی پروژه رو در deno.json یا package.json بهروز میکنه و در workspace چندپکیجه همه اعضا رو با هم جلو میبره؛ میتونه بامپ هر پکیج رو از Conventional Commits هم استنتاج کنه.
deno ci یه دستور تککلمهای برای CI و Dockerfileهاست: اگه deno.lock نباشه خطا میده، node_modules قدیمی رو پاک میکنه، و با فلگ --frozen نصب میکنه تا مطمئن بشه محیط دقیقاً با lockfile مطابقه. deno pack یه پروژه Deno یا JSR رو به یه tarball آمادهی npm publish تبدیل میکنه: TypeScript رو transpile میکنه، فایلهای .d.ts تولید میکنه، specifierها رو برای اکوسیستم npm بازنویسی میکنه (مثلاً jsr:@std/path میشه @jsr/std__path)، و فقط ماژولهای دسترسپذیر از exports رو بستهبندی میکنه.
deno transpile فقط تایپها رو از TypeScript، JSX و TSX میزنه کنار و JavaScript خالص مینویسه — بدون bundling یا بازنویسی ماژول. مثلاً یه تابع typed مثل greet(user: User): string به greet(user) تبدیل میشه و همین. deno why هم معادل npm explain و pnpm why برای Denoه: مسیر وابستگی از پکیجهای مستقیم تا پکیج مورد نظر رو نشون میده، هم برای npm هم برای JSR.
یه تغییر ارگونومیک مهم: از 2.8 دیگه لازم نیست پیشوند npm: رو در CLI تایپ کنی. deno add express الان همون کاری رو میکنه که deno add npm:express میکرد. این یعنی deno install عملاً جایگزین npm install میشه، با خوندن package.json و نوشتن node_modules سازگار — و حالا ۳.۶۶ برابر سریعتر از نسخهی قبلیه.
عملکرد (performance) در 2.8 جهشهای قابل توجهی داشته. چند تا از مهمترینها:
- نصب سرد npm: از ۳۳۱۹ms به ۹۰۶ms (۳.۶۶ برابر سریعتر)
- توان عملیاتی node:http: از ۸۳۳۹ به ۱۸۴۳۱ درخواست در ثانیه (۲.۲۱ برابر)
- base64 در node:buffer با استفاده از simdutf: از ۲۵۹۴ms به ۸۴۴ms (۳.۰۷ برابر سریعتر)
- scryptSync در node:crypto: ۲.۱۲ برابر سریعتر
سازگاری با Node.js هم یه جهش بزرگ داشته: نرخ پاسشدن تستهای suite رسمی Node از ~۴۲٪ در 2.7 به ۷۶.۴٪ در 2.8 رسیده (۳۴۰۵ از ۴۴۵۷ تست). این عدد خیلی بیشتر از Bun 1.3.14 با ۴۰.۶٪ه. در نهایت، Deno 2.8 از پروپوزال TC39 به نام import defer پشتیبانی میکنه که با import defer * as mod from "..." میشه یه ماژول رو لود کرد بدون اینکه کد سطح بالاش اجرا بشه — ارزیابی تا لحظهای که واقعاً به export نیاز داری به تأخیر میافته.
نکات کلیدی:
- deno audit fix آسیبپذیریهای npm رو بهصورت خودکار برطرف میکنه
- deno bump-version مدیریت نسخه در workspaceهای چندپکیجه رو ساده میکنه
- deno ci نصب reproducible برای محیطهای CI رو در یه دستور خلاصه میکنه
- deno pack پروژه Deno/JSR رو به tarball قابل انتشار در npm تبدیل میکنه
- deno transpile TypeScript رو بدون bundling به JS تبدیل میکنه
- deno why مسیر وابستگیهای npm و JSR رو نشون میده
- نصب npm حالا ۳.۶۶ برابر سریعتر، توان node:http بیش از دو برابر
- سازگاری با Node از ۴۲٪ به ۷۶.۴٪ رسیده
- پشتیبانی از import defer برای تأخیر در ارزیابی ماژولها




