• 0

لا يمكنني إسخدام متغيرات البيئة في React - Gatsby

 

قمت بإعداد ملف .env و gatsby-config.js على النحو التالي:

// ملف .env.development
GATSBY_APP_NAME=Title

// ملف gatsby-config.js
// من المفترض أن يتم طباعة كل المتغيرات الموجودة في الملف السابق
// لكن يتم طباعة {}
console.log(process.env)

في كل مرة يتم طباعة كائن فارغ { } ولا أعرف السبب

في البداية لم أكن استخدم البادئة GATSBY_  لكن بعد قراءة توثيق gatsby قمت بإضافتها ولكن هذا لم يحل المشكلة أيضًا.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

 تأكد من وضع الملف في المسار ال root أي يعتبر بجوار المجلد src

وقم أيضاً بطباعة المتغير بشكل مباشر للتأكد من الوصول للمتغيرات كالتالي

console.log(process.env.GATSBY_APP_NAME)

حيث أن webpack تقوم بتضمين هذه المتغيرات فقط في المشروع ولذلك لا يمكنك الوصول لprocess.env من المتصفح

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

لا يمكنك طباعة كل المتغيرات مرة واحدة , عوضا عن ذلك يجب تمرير اسم المتغير لتتم القراءة بشكل صحيح أثناء البناء , و ببساطة هذا ﻷن متصفح الواجهة الأمامية نفسه ليس له أي وصول لملف البيئة فالعملية تخص الخادم وحده و لذلك أثناء البناء يتم إستبدال أي متغير معرف على هذا النحو :

process.env.MY_VAR

بقيمته الفعلية و يتم البناء بشكل عادي .

في حين أن المتغير :

process.env

يتم تجاهله بطبيعة الحال و يتم إعادة كائن فارغ عن طريقه . 

فعوضا عن طباعة كل المتغيرات يمكنك فقط طباعة المتغير الذي تحتاج و إستعماله بشكل عادي .

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن