روزگاری دورتر بدون اینترنت و تنها با یک کامپیوتر میتوانستید برنامه بنویسید. آنقدر اینترنت کم بود که همراه ابزار برنامهنویسی سه عدد سی دی مستندات ابزار (MSDN) ارائه میشد که در زمان خودش حجیم محسوب میشد. هوش مصنوعی برای اتکا و رفع مشکل وجود نداشت و ابزار برنامهنویسی نه تنها نیازی به اینترنت نداشت که عموماً از وجود چنین پدیدهای بیاطلاع بود!
آن دوران گذشته و الان همهٔ ابزارهای برنامهنویسی بهروز به اینترنت وابسته هستند.
من این روزها عمدتاً در سمت سرور (backend) با NET. و در سمت کلاینت با فلاتر و گاهی با vue.js برنامهنویسی میکنم که همه برای ساخت یک برنامهٔ کامل به اینترنت نیاز دارند.
اما موضوع این روزهای من ساخت یک برنامه از اول نیست و عمدتأ نگهداری و بهروزرسانی برنامههای موجود است.
به نظرم رسید با توجه به عدم دسترسی به هوش مصنوعیها و جستجو و اینترنت نکتههایی که این روزها کارم را راه انداخته مستند کنم بلکه -خدای نکرده- بعداً باز به درد خودم یا به درد دیگران بخورد.
اولین مورد ساخت برنامههای وبی مبتنی بر فلاتر بدون اتکا به اینترنت جهانی است. وقتی یک برنامهٔ فلاتری مبتنی بر وب میسازید عمدتاً منابعی مانند اسکریپتهای اساسی (canvaskit.js) و همینطور فونتها را از روی CDNها دریافت میکند. برای جلوگیری از این کار اولاً تمام فونتهای مورد نیاز (به طور خاص Roboto که برای نمایش متون لاتین از آن استفاده میشود) را داخل pubspec.yaml بگنجانید. نکتهای که در مورد VS Code به آن باید توجه کنید که تغییر و ذخیرهٔ این فایل باعث تلاش برای دریافت بستههای مورد نیاز میشود. برای جلوگیری از این کار آن را خارج از VS Code ویرایش کنید و پس از باز کردن پروژه با VS Code تمایل به دریافت مجدد بستهها را تأیید نکنید. سپس در هنگام ساخت نسخهٔ وب از سوییچ عدم استفاده از cdnها استفاده کنید مثل این:
flutter build web --no-pub --no-web-resources-cdn
به این ترتیب خروجی نهایی مراجعه به cdnهای جهانی نخواهد داشت. این دو آرگومان اضافه را میتوانید در launch.json بگنجانید تا در ساخت نسخهٔ اشکالزدایی هم دچار مشکل نشوید.
سوییچ no-pub– روی ساخت خروجی اندروید هم کار میکند.
