مقالات

Astro 6 Beta | Astro


معرفی Astro 6 Beta! ما مشتاقیم که اولین نسخه بتا Astro 6 را اعلام کنیم که دارای یک سرور توسعه بازطراحی شده، بهبود عملکرد رندر قابل توجه و APIهای داخلی جدید برای کار با CSPها، فونت‌ها و مجموعه‌های محتوای زنده است.

Astro چیست؟ Astro چارچوب وب برای ساخت وب سایت های مبتنی بر محتوا، از جمله وبلاگ نویسی، بازاریابی، و تجارت الکترونیک است. اگر به وب سایتی نیاز دارید که سریع بارگذاری شود و سئوی عالی داشته باشد، Astro برای شما مناسب است.

Refactor جدید سرور توسعه Astro 6 مسیرهای کد توسعه و تولید Astro را بسیار نزدیکتر می کند و پایداری Astro را در تمام زمان های اجرا افزایش می دهد.. اکنون می توانید پروژه Astro خود را با استفاده از همان زمان اجرا توسعه دهید. به طور خاص، پشتیبانی از Astro را در Cloudflare Workers با دسترسی بیشتر به نسخه‌های ابتدایی خاص زمان اجرا و تجربه توسعه واقعی‌تر باز می‌کند.

برای امتحان Astro 6 Beta، راه‌اندازی کنید create astro دستور:

npm create astro@latest -- --ref next

برای ارتقاء یک پروژه موجود به بتا، از خودکار استفاده کنید @astrojs/upgrade ابزار CLI:

npx @astrojs/upgrade beta

راهنمای ارتقا نسخه 6 ما را برای جزئیات کامل و دستورالعمل های مهاجرت برای تغییرات مهم بررسی کنید.

دوباره کار شد astro dev

ویژگی اصلی Astro 6 یک سرور توسعه کاملاً بازطراحی شده است (astro dev).

Astro 6 فرصتی برای بهبود قابل توجه روش Astro برای مدیریت محیط های مختلف (کلاینت، سرور و پیش رندر) با یک refactor قابلیت استفاده داخلی بود. Vite محیط API که شکاف بین prod و dev را می بندد.

قبلاً، کدهایی که به صورت محلی اجرا می‌شدند ممکن بود پس از استقرار کمی متفاوت رفتار کنند. ویژگی های خاص پلتفرم اغلب تا زمان استقرار قابل آزمایش نیستند. در برخی موارد، Astro حتی مسیرهای منطقی جداگانه‌ای برای “dev” و “prod” داشت که در موارد شدید احتمال بروز باگ را افزایش می‌داد.

با استفاده داخلی از این API، Astro اکنون می‌تواند برنامه وب شما را در همان زمان اجرا اجرا کند، با همان موتور جاوا اسکریپت، همان جهانی و همان APIهای پلتفرم موجود در طول توسعه.

این Refactor به Astro اجازه می دهد:

  1. در برابر زمان های اجرا واقعی اجرا کنید – توسعه می تواند همزمان با تولید اجرا شود.
  2. پشتیبانی از چند پلتفرم – Cloudflare Workers امروز، با پایه ای که از پیاده سازی های اضافی در آینده پشتیبانی می کند.

با یکسان سازی مسیرهای کد توسعه و تولید، ما قبلاً بسیاری از باگ های ظریفی را پیدا کرده ایم که فقط در زمان توسعه یا فقط در تولید وجود داشتند.

این تغییر باعث می شود Astro 6 برای پروژه ها در همه پیاده سازی ها، از جمله محیط های غیر Node.js، پایدارتر باشد. همه کاربران Astro در نتیجه این ارتقا از ثبات و قابلیت اطمینان بیشتری برخوردار خواهند شد!

Spotlight: Astro 6 در Cloudflare Workers

Cloudflare Workers کامل ترین نمونه از جدید است astro dev امروز این امکان را فراهم می کند.

تا به حال، ادغام Astro Cloudflare زمان اجرا Workers را در حین توسعه شبیه سازی می کرد. شما علیه API های خاص Astro مانند Astro.locals.runtime که پلی‌فیل‌ها و ماک‌هایی را برای پلتفرم Cloudflare ارائه می‌کنند، سپس گسترش می‌دهند و امیدوارند که همه چیز در تولید یکسان رفتار کند.

با Astro 6 Beta، astro dev اکنون می توانید کل برنامه خود را با استفاده از آن اجرا کنید کارگر، زمان اجرای جاوا اسکریپت منبع باز Cloudflare. این همان زمان اجراست که به Workers Cloudflare در تولید قدرت می‌دهد – نه شبیه‌سازی یا polyfill.

در Astro 6، اکنون می توانید مستقیماً در برابر API های پلتفرم واقعی توسعه دهید و مشکلات را در حین توسعه به جای پس از استقرار مشاهده کنید. API های شبیه سازی ویژه مانند Astro.locals.runtime دیگر مورد نیاز نیستند.

وقتی می دوی astro dev با پشتیبانی Cloudflare، اکنون به موارد زیر دسترسی دارید:

  • اقلام بادوام – اشیاء بدون سرور را به صورت محلی آزمایش کنید
  • فضاهای نام KV – توسعه در برابر ذخیره سازی کلید-مقدار واقعی
  • ذخیره سازی R2 – کار با ذخیره سازی اشیا در توسعه
  • مکانیسم تجزیه و تحلیل کارگران – مجموعه ای از تجزیه و تحلیل تست
  • متغیرها و اسرار محیطی – پشتیبانی کامل از پیکربندی
  • تعویض ماژول داغ (HMR) – به‌روزرسانی‌های بی‌درنگ در حین اجرا در Worker

به طور مستقیم با استفاده از اتصالات Cloudflare خود دسترسی پیدا کنید cloudflare:workers ماژول:

import { env } from "cloudflare:workers";

// Access KV storage directly - works in both dev and production

const kv = env.MY_KV_NAMESPACE;

await kv.put("visits", "1");

const visits = await kv.get("visits");

آداپتور Cloudflare نیز همراه با سرور توسعه جدید به طور قابل توجهی بهبود یافته است:

  • astro preview اکنون با Cloudflare کار می کند و به شما این امکان را می دهد تا برنامه ساخته شده خود را قبل از استقرار به صورت محلی آزمایش کنید
  • به روز رسانی های API یکپارچه برای نقاط ورودی سفارشی و پیکربندی سرور توسعه
  • پیام های خطا بهبود یافته زمانی که کد شما با رفتار تولید متفاوت است

ما به طور فعال پشتیبانی از Cloudflare را بهبود می‌دهیم زیرا برای انتشار پایدار Astro 6 تلاش می‌کنیم. در حال حاضر، بیلدهای از پیش رندر شده (استاتیک) از طریق worker اجرا نمی‌شوند، اما قبل از انتشار نسخه 6 اجرا می‌شوند.

اگر با مشکل یا رفتار غیرمنتظره ای مواجه شدید، لطفاً به ما اطلاع دهید. این بازخورد به ویژه مهم است زیرا ما پشتیبانی را برای اجرای خارج از Node.js گسترش می‌دهیم.

برای اطلاعات بیشتر به راهنمای ارتقا آداپتور Cloudflare و برای لیست کامل تغییرات و بهبودها به Changelog Cloudflare Adapter مراجعه کنید.

مجموعه‌های زنده (پایدار)

مجموعه‌های محتوای زنده آزمایشی Astro 5.10 اکنون در Astro 6 پایدار هستند. آنها بر اساس مجموعه‌های محتوای ایمن Astro ساخته شده‌اند، که اکنون به شما امکان می‌دهد محتوا را به صورت محلی یا از CMS، API، پایگاه‌های داده و سایر منابع، با یک API یکپارچه که در تمام محتوای شما کار می‌کند، استخراج کنید.

Live Collections قفل قطعه گم شده را باز می کند: به روز رسانی داده ها در زمان واقعی بدون نیاز به بازسازی. با بارگذارهای داده سفارشی، مجموعه‌های زنده راه‌حل مناسبی برای منابع داده‌ای است که اغلب به‌روزرسانی می‌شوند و به اطلاعات به‌روز مانند قیمت سهام یا موجودی زنده نیاز دارند.

مجموعه‌های زنده از یک API متفاوت در زیر هود استفاده می‌کنند، اما پیکربندی و توابع کمکی طوری طراحی شده‌اند که برای کسانی که قبلاً از مجموعه‌های محتوای Astro در زمان ساخت استفاده می‌کردند، آشنا باشند:

import { defineLiveCollection } from 'astro:content';

import { storeLoader } from '@mystore/astro-loader';

const products = defineLiveCollection({

apiKey: process.env.STORE_API_KEY,

export const collections = { products };

و از آنجایی که هنگام جست‌وجوی داده‌ها در زمان واقعی هر چیزی ممکن است اتفاق بیفتد (مثلاً مشکلات شبکه، خطاهای API، مشکلات اعتبارسنجی)، API به گونه‌ای طراحی شده است که رسیدگی به خطا را صریح کند:

import { getLiveEntry } from 'astro:content';

const { entry: product, error } = await getLiveEntry('products', Astro.params.id);

if (error) return Astro.redirect('/404');

h1>{product.data.title}h1>

برای نمونه‌های بیشتر و گزینه‌های پیکربندی، مستندات مجموعه‌های محتوای زنده را ببینید.

خط مشی امنیت محتوا (پایدار)

پشتیبانی از سیاست امنیتی محتوا (CSP) که قبلاً به عنوان یک ویژگی آزمایشی در Astro 5.9 منتشر شده بود، اکنون در Astro 6 پایدار است. CSP با کنترل اینکه کدام منابع می‌توانند بارگیری شوند، به محافظت از سایت شما در برابر اسکریپت‌های بین سایتی (XSS) و سایر حملات تزریق کد کمک می‌کند.

این درخواست ویژگی برتر Astro تا به امروز بود، و ما این ویژگی را به دقت طراحی کرده‌ایم تا در تمام حالت‌های رندر Astro (صفحات استاتیک، صفحات پویا، و برنامه‌های تک صفحه‌ای) با حداکثر انعطاف‌پذیری و ایمنی نوع کار کند.

این ویژگی با تمام آداپتورهای رسمی Astro (Cloudflare، Netlify، Node، Vercel) سازگار است. Astro هدر CSP یا تولید می کند عنصر برای شما، از جمله هش اسکریپت ها و سبک های استفاده شده در یک صفحه، حتی آنهایی که به صورت پویا بارگذاری می شوند!

اکنون می توانید تنظیم کنید csp: true در پیکربندی امنیتی Astro پیش‌فرض خود، یا می‌توانید با فعال کردن این ویژگی با یک شی پیکربندی که شامل گزینه‌های اضافی است، خط‌مشی امنیتی خود را بیشتر سفارشی کنید:

import { defineConfig } from 'astro/config';

export default defineConfig({

"'self'", "https://cdn.example.com"

برای همه گزینه های موجود به مرجع پیکربندی CSP مراجعه کنید.

تغییرات کلیدی و مهاجرت

Astro 6 شامل چندین تغییر انقلابی است زیرا ما API های قدیمی را پاکسازی می کنیم و آنها را با استانداردهای جدید مطابقت می دهیم. تغییرات کلیدی:

  • API های حذف شده: Astro.glob()، emitESMImage()، رد شد مؤلفه، مجموعه‌های محتوای ارثی
  • نسخه Node: به Node 22+ نیاز دارد (پشتیبانی نود 18 و 20 قطع شد)
  • یکپارچه سازی API: به‌روزرسانی‌های رابط‌های آداپتور، داده‌های مسیر و مانیفست SSR
  • آداپتور Cloudflare: تغییرات مخرب در Astro.locals.runtime و الگوهای نقطه ورودی سفارشی
  • i18n: تغییر رفتار پیش فرض برای i18n.redirectToDefaultLocale
  • زود 4: به‌روزرسانی به Zod 4، Zod 3 دیگر پشتیبانی نمی‌شود

برای اطلاع از مراحل مهاجرت دقیق برای هر تغییر، راهنمای ارتقا را ببینید.

نقشه راه ثبات و تقویت کننده

Astro 6 در حال حاضر نرم افزار بتا است. این نسخه اولیه ما از این ویژگی ها است و ما آنها را قبل از انتشار پایدار v6.0 اصلاح خواهیم کرد. ما فعالانه به دنبال بازخورد هستیم:

  • آیا با توسعه کارگری به موارد لبه برخورد می کنید؟
  • هنگام کار در خارج از Cloudflare به پشتیبانی نیاز دارید؟
  • چه چیزی را می توانیم در تجربه توسعه دهندگان بهبود دهیم؟

پشتیبانی از توسعه‌دهندگان کارگر مخصوصاً برای آزمایش‌های گسترده مهم است، زیرا می‌خواهیم مطمئن شویم که در انواع مختلف پروژه و پیکربندی‌های مختلف به‌طور روان اجرا می‌شود.

اولین قدم ها

آیا آماده هستید Astro 6 Beta را امتحان کنید؟

npm create astro@latest -- --ref next

قبلاً از Astro 5 استفاده می‌کنید؟ ارتقا به بتا:

npx @astrojs/upgrade beta

برای پروژه‌های Cloudflare، برای دستورالعمل‌های راه‌اندازی، به مستندات آداپتور بتا Cloudflare v6 مراجعه کنید.

متشکرم

با تشکر از همه کسانی که در Astro 6 Beta همکاری کردند، به ویژه تیم Cloudflare برای همکاری آنها در کارگران پشتیبانی.

ما از شنیدن بازخورد شما هیجان زده هستیم زیرا در حال کار بر روی نسخه پایدار v6 هستیم که در آینده بیشتر خواهد بود!

Bluesky را لمس کنید، توییتر، Mastodon یا Discord تا ما را از تجربیات خود مطلع کنید و مشکلاتی را که در GitHub با آن مواجه می شوید ثبت کنید.




Source link

نوشته های مشابه

دیدگاهتان را بنویسید

همچنین ببینید
بستن
دکمه بازگشت به بالا