Это немного неловко, так как я Linux пользователь уже более 10 лет. Однако я столкнулся с проблемой, которую не могу понять.
Предположим, я хочу предоставить переменную среды SECRET
, к которой я могу получить доступ с узла с помощью process.env.SECRET
Я бы просто написал, что это тот же терминал, с которого я запускаю приложение
# Linux bash
$ export SECRET=Ultr4Secr3t
$ echo $SECRET
$ > Ultr4Secr3t
Затем запустите приложение узла nodejs app.js
// app.js
console.log(process.env.SECRET)
> Ultr4Secr3t
Все хорошо!
Но мне бы очень хотелось, чтобы вместо этого в репо был файл .env.
Пример .env файла
SECRET=Ultr4Secr3t
# Linux bash
$ . .env # On Mac we had to do ". ./.env"
$ echo $SECRET
$ Ultr4Secr3t
Теперь, когда я запускаю приложение, происходит странная вещь
Затем запустите приложение узла nodejs app.js
// app.js
console.log(process.env.SECRET)
> undefined
Почему это undefined
? Я бы предпочел не использовать пакет dotenv
.