Astro 6.2 منتشر شد: لاگر سفارشی، بهینهساز SVG و بیشتر
خلاصهٔ کاملتر
Astro 6.2 منتشر شد و یه دسته ویژگی جدید آورده که هم برای توسعهدهندههای روزمره مفیده هم برای کسایی که با ابزارهای هوش مصنوعی کار میکنن.
بهینهساز SVG جدید
قبلاً Astro یه فلگ ساده به اسم svgo داشت، ولی حالا یه API کاملتر به اسم svgOptimizer جاش رو گرفته. این API یه اینترفیس استاندارد به اسم SvgOptimizer تعریف میکنه که هر کتابخونهای میتونه ازش پیادهسازی کنه. پیشفرض همون SVGO هست، ولی میشه بهراحتی با چیز دیگهای مثل OxVG جاش بذاری:
import { defineConfig, svgoOptimizer } from "astro/config";
export default defineConfig({
experimental: {
svgOptimizer: svgoOptimizer()
}
});با این تنظیم، تمام فایلهای SVG که بهعنوان کامپوننت ایمپورت میشن در زمان بیلد بهینه میشن.
لاگر آزمایشی با خروجی JSON
یکی از جذابترین قابلیتهای این نسخه، لاگر سفارشیه. الان میشه خروجی لاگهای Astro رو کنترل کرد. یه لاگر JSON آماده هم توکار هست که بهویژه برای کار با ایجنتهای کدنویسی (coding agents) عالیه چون لاگهای ساختاریافته خیلی راحتتر پارس میشن:
import { defineConfig, logHandlers } from "astro/config";
export default defineConfig({
experimental: {
logger: logHandlers.json()
}
});همچنین میشه یه لاگر کاملاً سفارشی ساخت با پیادهسازی اینترفیس AstroLoggerDestination. کافیه یه فایل جداگانه بنویسی و آدرسش رو توی کانفیگ بدی.
هلپر جدید برای فونتها: getFontFileURL
یه هلپر آزمایشی به اسم experimental_getFontFileURL اضافه شده که میشه باهاش در مرحله پیشرندر به URL فایل فونت دسترسی داشت. این قابلیت برای ابزارهایی مثل Satori که برای ساخت تصاویر Open Graph نیاز به داده فونت دارن خیلی مفیده؛ کاری که قبلاً نیاز به workaroundهای غیررسمی داشت.
آلفای Astro 7 هم اومد!
کار روی نسخه اصلی بعدی یعنی Astro 7 شروع شده. اولین آلفا دو تغییر بزرگ داره: اول اینکه Vite 8 رو ساپورت میکنه، و دوم اینکه کامپایلر Rust که قبلاً آزمایشی بود حالا به کامپایلر پیشفرض تبدیل شده و دیگه نیازی به فلگ experimental.rustCompiler نیست. این کامپایلر سرعت بیلد رو بهطور چشمگیری نسبت به کامپایلر قدیمی Go بالا میبره.
بهبودهای دیگه
گزینه allowedHosts در سرور پیشنمایش حالا به آداپتورها هم پاس داده میشه که کنترل بهتری روی هاستهای مجاز داره. همچنین گزینه compressHTML یه مقدار جدید "jsx" قبول میکنه که رفتار whitespace رو بین فایلهای .astro و .tsx یکسان میکنه.
برای آپگرید پروژههای موجود، راحتترین راه استفاده از ابزار CLI هست:
npx @astrojs/upgradeنکات کلیدی:
- لاگر JSON آزمایشی برای کار با ایجنتهای هوش مصنوعی و ساختاردهی لاگها
- API بهینهساز SVG بازطراحی شد و حالا از هر کتابخونهای پشتیبانی میکنه
- هلپر
getFontFileURLبرای لود فونت در مرحله پیشرندر (مثلاً برای OG image) - آلفای Astro 7 با Vite 8 و کامپایلر Rust بهعنوان پیشفرض منتشر شد
compressHTMLحالا از مقدار"jsx"پشتیبانی میکنه




