reactnative.run: اجرای ریاکت نیتیو مستقیم توی مرورگر
خلاصهٔ کاملتر
ایدهٔ اصلی این پروژه اینه که کل چرخهٔ نوشتن، باندلکردن و پیشنمایش یه اپ ریاکت نیتیو رو بدون هیچ نصبی و مستقیم توی مرورگر ممکن کنه. موتور این کار یه باندلر به اسم browser-metroست که معماری Metro (باندلر رسمی ریاکت نیتیو) رو به مرورگر منتقل میکنه.
نکتهٔ متمایزکننده اینه که باندلکردن کاملاً سمت کلاینت انجام میشه. طبق توضیح سازنده، browser-metro داخل یه Web Worker اجرا میشه، پس اصلاً به CLI، Xcode یا Android Studio نیاز نداری. همین باعث میشه سازنده تفاوتش با Expo Snack رو توی همین نقطه بدونه: Snack روی سرورهای خودش کامپایل میکنه، ولی اینجا همهچیز کلاینتساید باندل میشه که چرخهٔ تکرار سریعتری میده.
از نظر امکانات، HMR کامل با React Refresh رو داره، یعنی کد رو ویرایش میکنی و تغییرات رو بدون از دست دادن state کامپوننت میبینی. Expo Router هم پشتیبانی میشه، طوری که میتونی یه فایل route اضافه کنی و بلافاصله ظاهر شدنش رو ببینی. حتی فایلهای API route هم کار میکنن:
export function GET(req) {
return Response.json({
message: "Hello!"
});
}طبق توضیح، این فایلهای +api.ts داخل مرورگر و از طریق intercept کردن fetch اجرا میشن، بدون اینکه به سرور یا service worker نیاز باشه. برای پکیجها هم میتونی هر پکیج npm رو import کنی؛ یه سرور ESM اون رو بهصورت on-demand باندل میکنه و برای استفادههای بعدی کش میکنه. پس فقط بار اول یه تأخیر cold-start داری.
معماری کلی روی دوتا سرویس سواره: باندلر داخل مرورگر و سرور پکیج ESM که با هم کار میکنن. یه محدودیت مهم اینه که پیشنمایش فعلاً فقط وبه، چون باندلر react-native-web رو هدف میگیره و اپت مثل یه صفحهٔ وب رندر میشه؛ پیشنمایش روی دستگاه واقعی iOS و اندروید توی نقشهٔ راهه ولی هنوز نیست.
سازنده تأکید میکنه که این یه پروژهٔ رسمی ریاکت نیتیو نیست؛ یه پروژهٔ مستقل و متنباز از RapidNativeست و هیچ وابستگیای به Meta یا تیم ریاکت نیتیو نداره و اسم دامنه فقط توصیفیه. هر سه بخش یعنی browser-metro، سرور reactnative-esm و خود پلیگراند متنباز و با مجوز MIT هستن و میشه روی زیرساخت خودت self-host کرد.
نکات کلیدی:
- نوشتن، باندل و پیشنمایش اپ ریاکت نیتیو مستقیم توی مرورگر، بدون CLI/Xcode/Android Studio
- موتورش browser-metroست که معماری Metro رو کاملاً سمت کلاینت و داخل Web Worker اجرا میکنه
- HMR کامل با React Refresh، پشتیبانی از Expo Router و API routeها داخل مرورگر
- هر پکیج npm بهصورت on-demand با سرور ESM باندل و کش میشه
- پیشنمایش فعلاً فقط وبه؛ پروژهٔ مستقل و متنباز RapidNative با مجوز MIT، غیررسمی و بدون وابستگی به Meta




