• בלוג
  • עמוד 3
  • היום למדתי: תווים מצחיקים במשתני סביבה

היום למדתי: תווים מצחיקים במשתני סביבה

20/02/2025

אנחנו יודעים להגדיר קובץ .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 כמו שכתבתי, אבל לא עובד אם במקום מרכאות יהיה גרש בודד.