Developer
استفاده از env در react-native
در زمان توسعه اپها بزرگ شاید یکی از مهمتری نیازهای روز استفاده از env باشه. البته شما میتونید از env در اپهای کوچیک هم استفاده کنید که این بسته به تشخص شما و نیاز شماست.
در زمان استفاده از react-native کانفیگ کردن env به شدت سخته به نظر من و دردسر های زیادی رو میتونه ایجاد بکنه براتون و به همین دلیل پیشنهاد نمیشه کسی اینکار رو خودش انجام بده.
بعضی افراد هم هستن میخوان این مورد رو دور بزنن و زرنگ بازی در بیارن برای همین یک فایل به طور مثال index.js میسازن و متغیرها رو اونجا قرار میدن به عنوان constant که زیاد جالب نیست چرا که اگر شما چند محیط مختلف داشته باشید مثل محیطهای زیر
- development
- test
- production
نمیتونید از این متغیر ها استفاده بکنید و مشکلاتی رو ایجاد میکنه.
اینجا میخوام بهتون یک پکیج رو معرفی کنم به راحتی به کمک اون میتونید در react-native از env استفاده بکنید. که نصب و استفاده از اون بسیار سادست. البته جامعه بسیار قویی هم داره و در خیلی از جاها از اون استفاده شده
که میتونید به این لینک برید و توضیحات تکمیلی رو ببینید.
برای نصب این پکیج به سادگی باید دستور زیر رو در ترمینال وارد کنید.
npm install react-native-config
// or
yarn add react-native-config
یکم باید صبر کنید تا پکیج نصب بشه بعد از اون میتونید یک فایل env در مسیر اصلی پروژتون ایجاد کنید و متغیرها رو تعریف کنید.
برای android باید یک کار دیگه هم انجام بدید.
به مسیر روبرو برید android/app/build.gradle و خط زیر رو بهش اضافه کنید.
// 2nd line, add a new apply:
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
نکته: اگر در زمان توسعه متغیر ها رو تغییر دادید برای اینکه تغییرات اعمال بشه و مقادیر صحیح جدید رو داشته باشید باید یکبار مجدد از برنامه build بگیرید و بعد برنامه رو start کنید.
روش استفاده به این صورت هستش که در هر فایل js که خواستید از این متغیرها استفاده بکنید باید به روش زیر باشه
import Config from 'react-native-config';
از حالا با کمک متغیر Config به تمام متغیرهایی که در env تعریف کردید دسترسی دارید.
مطلبی دیگر از این انتشارات
چهارمین دورهمی جامعه ری اکت ایران (دیدگاه شخصی)
مطلبی دیگر از این انتشارات
ری اکت رو قورت بده - ۳
مطلبی دیگر از این انتشارات
چه چیزهایی را از React Native را دوست ندارید؟