اجرای پروژههای Flutter و Android و Go و .... بدون اینترنت — حتی روی ویندوز شخصی( البته کار حرفه ای برا شرکت ها اینه که روی سرور بالا بیارن اینو)
تا حالا به این فکر کردی چند بار در روز پروژههات برای دانلود dependency به اینترنت خارجی وصل میشن؟
چه Flutter باشه، Android باشه، npm باشه، Go باشه…
تقریباً همه ابزارهای مدرن توسعه به یک مخزن خارجی وابستهان.
اینجاست که مفهوم Mirror مهم میشه.
Mirror یعنی چی؟
خیلی ساده بگم:
یه کپی هوشمند از یک مخزن خارجی که داخل شبکه خودت اجرا میشه.
وقتی برای اولین بار یه پکیج دانلود میکنی:
* از اینترنت گرفته میشه
* داخل سرور Mirror ذخیره (cache) میشه
از اون به بعد:
* همون پکیج از داخل شبکه خودت سرو میشه
* سرعت بالاتر میره
* مصرف اینترنت کمتر میشه
* حتی در صورت قطع اینترنت، build همچنان میتونه انجام بشه (اگر قبلاً کش شده باشه)
یکی از ابزارهای حرفهای برای این کار
Nexus Repository
از شرکت
Sonatype هست.
لینک دانلودش هم اینه
https://help.sonatype.com/en/download.htmlبرا تنظیم کردنش هم از chatgpt کمک بگیرید برا ست کردن میرور فلاتر و گردل و چیز دیگه ای که میخوایین چون باید داخل چند تا ریپازیتوری ایجاد کنین داخلی همین nexus و داخل اندروید استودیو و اینوایرومنت های سیستم هم باید میرور ها رو ست کنین به خاطر همین بهترین شیوه کانفیگ کردن استفاده از chat gpt هست
نکته مهم اینه که این موضوع فقط مخصوص Flutter یا Android نیست.
با Nexus میشه برای اینها هم Mirror ساخت:
* Maven (پروژههای Java و Android)
* npm (پروژههای Node.js)
* Go modules
* Python (PyPI)
* Docker images
* و حتی بسیاری از package managerهای دیگه
یعنی عملاً هرجایی که dependency از اینترنت میاد، میشه جلوش یک لایه کنترل و کش داخلی گذاشت.
و جالبتر اینه که حتی روی سیستم شخصی، مثلاً ویندوز، هم میشه اجراش کرد. لازم نیست دیتاسنتر داشته باشی. یه سرور لوکال (یا حتی Docker روی لپتاپ) کافیه.
در کشوری که اینترنت پایدار نیست، Mirror فقط یه بهینهسازی نیست؛
یه جور بیمه برای فرآیند توسعه است.
زیرساخت خوب یعنی وقتی اینترنت قطع شد، توسعه هم قطع نشه.
@DevTwitter | <Abbas Dehghani/>