مقالات

Astro 5.13 | Astro


🍀 Lucky Astro 5.13 بهبودهای آزمایشی را در مدیریت متغیرهای محیطی، پشتیبانی از فضاهای کاری Chrome DevTools و موارد دیگر به ارمغان می آورد!

ترکیب اولیه شامل:

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

pnpm upgrade astro --latest

yarn upgrade astro --latest

متغیرهای محیطی می توانند پیچیده باشند! در Astro astro:env API به شما امکان می دهد یک طرحواره ایمن برای متغیرهای محیط خود پیکربندی کنید و متغیرهای وارد شده از طریق آن را تبدیل کنید. astro:env در نوع مورد انتظار این روش پیشنهادی برای استفاده از متغیرهای محیطی در Astro است، زیرا به شما این امکان را می‌دهد تا به راحتی ببینید و کنترل کنید که آیا متغیرهای شما عمومی یا مخفی هستند، در زمان کامپایل روی کلاینت یا فقط روی سرور در دسترس هستند و نوع داده مقادیر خود را.

همچنان می توانید از طریق به متغیرهای محیط خود دسترسی داشته باشید process.env و همچنین import.meta.env در صورت لزوم به طور مستقیم این تنها راه استفاده از متغیرهای محیطی در Astro بود astro:env در Astro 5.0 و مدیریت آن اضافه شد import.meta.env شامل برخی منطق طراحی شده برای نسخه های قبلی Astro است که دیگر مورد نیاز نیست.

Astro 5.13 شامل یک نسخه جدید است experimental.staticImportMetaEnv پرچمی که رفتار آن را به روز می کند import.meta.env برای هماهنگی با مدیریت متغیر محیطی Vite و برای سهولت استفاده با پیاده سازی ها و ویژگی های فعلی Astro. این پرچم جایگزین پرچم قبلی می شود rawEnvVariables به عنوان یک راه حل کامل تر برای مدیریت متغیرهای محیط متا خصوصی. این به رفتار پیش فرض در Astro 6.0 تبدیل می شودو این پیش نمایش اولیه به عنوان یک ویژگی آزمایشی معرفی شد.

در حال حاضر عمومی نیست import.meta.env متغیرهای محیطی با ارجاع به جایگزین می شوند process.env. علاوه بر این، Astro همچنین می تواند نوع مقدار متغیرهای محیطی مورد استفاده شما را از طریق تبدیل کند import.meta.env، که می تواند از دسترسی به برخی از مقادیر مانند رشته ها جلوگیری کند "true" (که به مقدار بولی تبدیل می شود) و "1" (که به عدد تبدیل می شود).

را experimental.staticImportMetaEnv پرچم رفتار پیش‌فرض Astro را ساده می‌کند و درک و استفاده از آن را آسان‌تر می‌کند. Astro دیگر جایگزین هیچ کدام نخواهد شد import.meta.env متغیرهای محیطی با a process.env تماس بگیرید و ارزشی را تحمیل نکنید. در عوض، متغیرهای محیط متا خصوصی شما همیشه درون خط خواهند بود.

برای فعال کردن این ویژگی، پرچم آزمایشی را به پیکربندی Astro خود اضافه کنید و حذف کنید experimental.rawEnvValues در صورت فعال بودن پرچم گذاری کنید:

import { defineConfig } from "astro/config";

export default defineConfig({

staticImportMetaEnv: true,

استاتیک تجربی را ببینید import.meta.env اسنادی برای اطلاعات بیشتر در مورد گنجاندن در این پیش‌نمایش ویژگی اولیه و نحوه به‌روزرسانی کد پروژه بر این اساس.

می‌توانید درباره استفاده از متغیرهای محیطی در Astro اطلاعات بیشتری کسب کنید، از جمله astro:env، در مستندات متغیرهای محیطی.

پوشه‌های فضای کاری Chrome به شما این امکان را می‌دهند که تغییرات ایجاد شده در DevTools را از طریق یک پوشه فضای کاری مرتبط، در کد پروژه خود ذخیره کنید. این به شما امکان می دهد ویرایش هایی مانند تنظیمات CSS را بدون ترک برگه مرورگر خود اعمال کنید!

Astro 5.13 یک گزینه آزمایشی جدید برای سرور توسعه Astro ارائه می دهد تا به طور خودکار فضای کاری Chrome DevTools را برای پروژه شما پیکربندی کند. پوشه پروژه شما به عنوان منبع فضای کاری ظاهر می شود، بدون نیاز به پیکربندی دستی، آماده اتصال است. سپس هر تغییری که در پانل منابع ایجاد می‌کنید به‌طور خودکار در فایل‌های منبع محلی شما ذخیره می‌شود.

برای فعال کردن این ویژگی، پرچم آزمایشی را اضافه کنید chromeDevtoolsWorkspace به پیکربندی Astro شما:

import { defineConfig } from 'astro/config';

export default defineConfig({

chromeDevtoolsWorkspace: true

برای اطلاعات بیشتر به مستندات ویژگی فضای کاری آزمایشی Chrome DevTools مراجعه کنید.

چندین نقشه سایت

را @astrojs/sitemap ادغام همیشه از گزینه گنجاندن صفحات تولید شده خارجی در آن پشتیبانی کرده است sitemap-index.xml فایل تولید شده توسط Astro. این به شما امکان می دهد صفحاتی را در نقشه سایت خود قرار دهید که بخشی از سایت مستقر شده شما هستند اما توسط Astro ایجاد نشده اند.

آخرین نسخه ادغام جدید اضافه می کند customSitemaps گزینه پیکربندی برای گنجاندن نقشه های سایت تولید شده خارجی در sitemap-index.xml فایل همراه با رکوردهای نقشه سایت ایجاد شده توسط Astro.

این برای تنظیمات چند فریم در همان دامنه سایت Astro شما مفید است (example.com) مانند وبلاگ در example.com/blog که نقشه سایت توسط فریمورک دیگری تولید می شود.

شما می توانید هر نقشه سایت اضافی را در نقشه خود مشخص کنید sitemap پیکربندی:

import { defineConfig } from 'astro/config';

import sitemap from '@astrojs/sitemap';

export default defineConfig({

site: 'https://example.com',

'https://example.com/blog/sitemap.xml',

'https://example.com/helpcenter/sitemap.xml'

بیشتر بدانید در @astrojs/sitemap اسناد پیکربندی

با تشکر از Gourav Khunger که به این ویژگی کمک کرد.

صفحات خطای میزبانی تجربی

آخرین نسخه آداپتور Node.js با پشتیبانی آزمایشی برای بارگیری صفحات خطای سفارشی از پیش رندر شده از هر میزبان مشخص شده ارائه می شود.

Astro باید بتواند صفحه 404 شما را بارگیری کند تا آن را به عنوان پاسخ بازگرداند. به طور پیش فرض، Astro صفحات خطای سفارشی از پیش رندر شده را از همان میزبان درخواستی بارگیری می کند. به عنوان مثال، اگر درخواستی به https://example.com/nonexistent-page، Astro سعی می کند صفحه خطای از پیش رندر شده را بارگیری کند https://example.com/404.html.

@astrojs/node@9.4.0 اکنون موقعیت‌هایی را کنترل می‌کند که صفحه خطای سفارشی شما باید از میزبان دیگری بارگیری شود، مانند زمانی که سرور در پشت یک پروکسی معکوس یا در ظرفی کار می‌کند که ممکن است نتواند به URL میزبان خارجی دسترسی پیدا کند. همچنین می توانید از این گزینه زمانی استفاده کنید که بارگذاری صفحه خطای از پیش رندر شده از لوکال هاست به جای اینترنت عمومی کارآمدتر باشد.

برای استفاده از این ویژگی، تنظیم کنید experimentalErrorPageHost گزینه آداپتور در پیکربندی Astro شما به URL میزبان مورد نظر. به عنوان مثال، اگر سرور شما روی لوکال هاست اجرا می شود و از طریق یک پروکسی ارائه می شود، می توانید اطمینان حاصل کنید که صفحات خطای از پیش اجرا شده از طریق URL لوکال هاست بازیابی می شوند:

import { defineConfig } from 'astro/config';

import node from '@astrojs/node';

export default defineConfig({

// If your server is running on localhost and served via a proxy,

// set the host like this to ensure prerendered error pages are fetched via the localhost URL

experimentalErrorPageHost: 'http://localhost:4321'

برای اطلاعات بیشتر در مورد فعال کردن و استفاده از این ویژگی آزمایشی، رجوع کنید به @astrojs/node اسناد آداپتور

پشتیبانی از Enum در جداول Astro DB

ما مطمئن هستیم که شما خواهید بود ({ enum: ['happy', 'thrilled', 'over the moon'] }) در مورد این به روز رسانی Astro DB!

آخرین نسخه از @astrojs/db پشتیبانی از فهرست مورد انتظار برای ستون های متنی در جداول Astro DB را به ارمغان می آورد. این رفتار با انتظارات کاربر و اجرای اصلی Drizzle بهتر مطابقت دارد.

توجه داشته باشید که این منحصراً برای تولید نوع استفاده می شود و هیچ بررسی زمان اجرا انجام نخواهد شد. حذف، افزودن و تغییر مقادیر باید در کد پروژه خودتان انجام شود.

import { column, defineTable } from 'astro:db';

const UserTable = defineTable({

id: column.number({ primaryKey: true }),

rank: column.text({ enum: ['user', 'mod', 'admin'] })

// Resulting type definition

type UserTableInferInsert = {

rank: "user" | "mod" | "admin";

پشتیبانی محلی برای Cloudflare KV

آخرین نسخه آداپتور Cloudflare شامل پشتیبانی محلی برای Cloudflare Workers KV هنگام اجرا است astro dev. این بازسازی داخلی جایگزینی ضروری برای تقویت جلسات Astro است و نیازی به تغییر کد در پروژه فعلی شما ندارد.

با این حال، اکنون می توانید انتخاب کنید که در صورت تمایل به فضای نام راه دور Cloudflare KV متصل شوید و از داده های تولید در طول توسعه محلی استفاده کنید.

رفع اشکال

مثل همیشه، ما سخت در حال کار برای رفع مشکلات بعد از نسخه 5.12 هستیم. برای جزئیات کامل تغییرات لاگ را ببینید.

تیم اصلی Astro عبارتند از:

الکساندر نیبور، بن هلمز، کالب جاسیک،
کریس سویتین بانک، امانوئل استوپا، اریکا،
فلوریان لوفور، فرد شات، فازی،
سلام، لویی فراز، مت کین،
متیو فیلیپس، نیت مور، روبن ردیف،
سارا رینزبرگر، و ایان توماس

از همه مشارکت‌کنندگان دیگری که با افزودن‌ها و بهبودهای کد و اسناد کمک کردند تا Astro 5.13 ممکن شود، از جمله:

آدام ماتیسن، آدریان سیرادزکی، آیدان مک‌آلیستر، آریل کی، آرماند فیلیپات، آزوشی، بنوسمک، بیورن لو، براندون لی، برایان بیرتلز، کاسونگو، چاگومی، کدگذاری در عمومی، هویج رنگی، دیوید بوین، DNEK، فلیکس اشناینو، ژی‌نگهو، گویدروکین، ژاکوب پرتوریوس، جات، جوناس گایلر، پارک جونسئونگ، کایلا آکیوز، کیان، کنج، کیوسوکه ناکامورا، LEF، لوئیس اشر، لوک ایدز، مارتین تراپ، ماتئوس بوسیان، متیو جاستیس، میکال پیچوویاک، الیور اسپیر، پل والابریاس، پل والادارس، بلتران، شینیا فوجینو، سلیمان کوناته، توماس بونت، تیاگو ویلا و ورابه




Source link

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

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

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