From 23cf6ef56ba17183cc2e8e5a1bd011614732f0c0 Mon Sep 17 00:00:00 2001 From: Mehdi ghaderi <96407423+Xghael@users.noreply.github.com> Date: Tue, 11 Feb 2025 22:44:39 +0330 Subject: [PATCH 1/2] add page --- docs/guide/philosophy.md | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/docs/guide/philosophy.md b/docs/guide/philosophy.md index ccceeb7..113fa5d 100644 --- a/docs/guide/philosophy.md +++ b/docs/guide/philosophy.md @@ -1,4 +1,5 @@ -# Project Philosophy + + + + + + +# فلسفه‌ی پروژه Vite + +## هسته‌ی کم‌حجم و قابل توسعه + +Vite قصد ندارد تمام سناریوهای ممکن را برای همه‌ی کاربران پوشش دهد. هدف Vite این است که الگوهای رایج برای ساخت اپلیکیشن‌های وب را به‌صورت پیش‌فرض ارائه کند، اما [هسته‌ی Vite](https://github.com/vitejs/vite) باید کم‌حجم باقی بماند و API کوچکی داشته باشد تا نگهداری آن در طولانی‌مدت ساده باشد. این هدف به لطف [سیستم پلاگین مبتنی بر Rollup در Vite](./api-plugin.md) محقق می‌شود. قابلیت‌هایی که می‌توانند به‌عنوان پلاگین‌های خارجی پیاده‌سازی شوند، معمولاً به هسته‌ی Vite اضافه نخواهند شد. برای مثال، [vite-plugin-pwa](https://vite-pwa-org.netlify.app/) نمونه‌ای عالی از قابلیت‌هایی است که خارج از هسته‌ی Vite توسعه یافته‌اند. همچنین، مجموعه‌ای از [پلاگین‌های خوب و پشتیبانی‌شده](https://github.com/vitejs/awesome-vite#plugins) برای پوشش نیازهای کاربران وجود دارد. Vite همکاری نزدیکی با پروژه Rollup دارد تا اطمینان حاصل شود که پلاگین‌ها تا حد ممکن هم در پروژه‌های Rollup و هم در Vite قابل استفاده باشند و در صورت نیاز، گسترش‌های لازم به API پلاگین‌ها اضافه شوند. + +## پیشبرد توسعه‌ی وب مدرن + +Vite ویژگی‌هایی را ارائه می‌کند که توسعه‌ی کد مدرن را تشویق می‌کند. برای مثال: + +- کد منبع باید فقط در قالب ESM نوشته شود، و وابستگی‌های غیر-ESM باید ابتدا [به‌صورت ESM پیش‌باندل](./dep-pre-bundling) شوند تا کار کنند. +- پیشنهاد می‌شود که Web Workers با استفاده از [ `new Worker` syntax ](./features#web-workers) نوشته شوند تا از استانداردهای مدرن پیروی کنند. +- ماژول‌های Node.js را نمی‌توان در مرورگر استفاده کرد. + +در هنگام افزودن قابلیت‌های جدید، این الگوها رعایت می‌شوند تا API‌ای ساخته شود که در آینده نیز پایدار و قابل استفاده باشد، حتی اگر همیشه با سایر ابزارهای ساخت سازگار نباشد. + +## رویکرد عمل‌گرایانه نسبت به عملکرد + +Vite از [ابتدای توسعه‌ی خود](./why.md) بر عملکرد متمرکز بوده است. معماری سرور توسعه‌ی آن به HMR اجازه می‌دهد که حتی با بزرگ‌تر شدن پروژه‌ها، سریع بماند. Vite از ابزارهای بومی مانند [esbuild](https://esbuild.github.io/) و [SWC](https://github.com/vitejs/vite-plugin-react-swc) برای انجام وظایف سنگین استفاده می‌کند، اما بقیه‌ی کد را در JS نگه می‌دارد تا تعادل بین سرعت و انعطاف‌پذیری حفظ شود. در صورت نیاز، پلاگین‌های فریمورک می‌توانند از [Babel](https://babeljs.io/) برای کامپایل کد کاربر استفاده کنند. همچنین، در زمان ساخت، Vite از [Rollup](https://rollupjs.org/) بهره می‌برد، جایی که اندازه‌ی باندل و دسترسی به اکوسیستم گسترده‌ی پلاگین‌ها اهمیت بیشتری نسبت به سرعت خام دارد. Vite به‌صورت مداوم تکامل می‌یابد و در صورت ظهور کتابخانه‌های جدید برای بهبود تجربه‌ی توسعه‌دهنده (DX)، آن‌ها را در معماری داخلی خود ادغام خواهد کرد، در حالی که API آن پایدار باقی می‌ماند. + +## ایجاد فریمورک‌ها بر پایه‌ی Vite + +هرچند Vite به‌صورت مستقیم توسط کاربران قابل استفاده است، اما قدرت اصلی آن در ایجاد فریمورک‌ها نمایان می‌شود. هسته‌ی Vite وابسته به فریمورک خاصی نیست، اما پلاگین‌های بهینه‌شده‌ای برای هر فریمورک UI وجود دارد. [API جاوااسکریپت Vite](./api-javascript.md) به توسعه‌دهندگان فریمورک‌ها این امکان را می‌دهد که قابلیت‌های Vite را برای ایجاد تجربه‌های اختصاصی برای کاربران خود به کار ببرند. Vite همچنین از [SSRs](./ssr.md) پشتیبانی می‌کند که معمولاً در ابزارهای سطح بالاتر وجود دارند، اما برای ساخت فریمورک‌های وب مدرن ضروری هستند. پلاگین‌های Vite نیز امکان اشتراک‌گذاری بین فریمورک‌های مختلف را فراهم می‌کنند. علاوه بر این، Vite گزینه‌ی مناسبی برای ادغام با [فریمورک‌های بک‌اند](./backend-integration.md) مانند [Ruby](https://vite-ruby.netlify.app/) و [Laravel](https://laravel.com/docs/10.x/vite) است. + +## یک اکوسیستم فعال + +توسعه‌ی Vite نتیجه‌ی همکاری بین توسعه‌دهندگان فریمورک‌ها، نگه‌داران پلاگین‌ها، کاربران و تیم اصلی Vite است. ما مشارکت فعال در توسعه‌ی هسته‌ی Vite را تشویق می‌کنیم، به‌ویژه زمانی که پروژه‌ای از آن استفاده می‌کند. تیم Vite با پروژه‌های اصلی در اکوسیستم همکاری می‌کند تا از بروز مشکلات در هر نسخه‌ی جدید جلوگیری کند. ابزارهایی مانند [vite-ecosystem-ci](https://github.com/vitejs/vite-ecosystem-ci) به ما کمک می‌کنند تا تست‌های CI را برای پروژه‌های مهم که از Vite استفاده می‌کنند روی PRهای منتخب اجرا کنیم و بررسی کنیم که اکوسیستم چگونه به نسخه‌های جدید واکنش نشان خواهد داد. هدف ما این است که مشکلات قبل از رسیدن به کاربران حل شوند و پروژه‌ها بتوانند بلافاصله پس از انتشار نسخه‌های جدید، به‌روز شوند. اگر شما هم با Vite کار می‌کنید، از شما دعوت می‌کنیم که به [Discord رسمی Vite](https://chat.vite.dev) بپیوندید و در توسعه‌ی این پروژه مشارکت داشته باشید. From 31a705ae62acf38fc01aac8f84768fd707bf4deb Mon Sep 17 00:00:00 2001 From: Mehdi ghaderi <96407423+Xghael@users.noreply.github.com> Date: Tue, 11 Feb 2025 22:49:09 +0330 Subject: [PATCH 2/2] fix page --- docs/guide/philosophy.md | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/docs/guide/philosophy.md b/docs/guide/philosophy.md index 113fa5d..ea2a24f 100644 --- a/docs/guide/philosophy.md +++ b/docs/guide/philosophy.md @@ -1,36 +1,3 @@ - - - - - - # فلسفه‌ی پروژه Vite ## هسته‌ی کم‌حجم و قابل توسعه