היום למדתי: תווים מצחיקים במשתני סביבה
אנחנו יודעים להגדיר קובץ .env
עם משתני הסביבה של הפרויקט בפורמט הזה:
API_KEY=abcdefg
ואחרי זה לקרוא את משתני הסביבה באמצעות:
console.log(process.env.API_KEY);
הסיפור נהיה מעניין כשאנחנו מוסיפים תווים מיוחדים לערכים של משתני הסביבה, לדוגמה:
API_KEY=abcd$e$fgh#abc123
ניסיון רגיל ב next.js לטעון קובץ env כזה ישאיר את משתנה הסביבה בלי החלק שאחרי הסולמית. ואל תדאגו שום הודעת שגיאה לא תופיע על המסך. אפשר (רצוי) להקיף את משתנה הסביבה במרכאות:
API_KEY="abcd$e$fgh#abc123"
אבל זה לא מספיק. עכשיו אנחנו מאבדים את האותיות שאחרי הדולרים כי next חושב שאלה משתנים. עליהם נצטרך לשמור בנפרד עם לוכסן הפוך:
API_KEY="abcd\$e\$fgh#abc123"
שימו לב ששימוש בגרש בודד לא יעזור כאן, אלא רק יזיק. ב next הגרש הבודד מפוענח כמו גרשיים והכל עדיין עובד, אבל אם תנסו לטעון את קובץ ה .env
מתוך bash הגרש הבודד יגרום ללוכסן ההפוך להיכנס בעצמו לערך, כלומר הקוד הזה ב bash:
source .env
עובד עם מרכאות ו Backslash כמו שכתבתי, אבל לא עובד אם במקום מרכאות יהיה גרש בודד.