похоже, что dotenv не загружает переменную env - PullRequest
0 голосов
/ 21 сентября 2019

Я занимаюсь разработкой стандартного веб-приложения Node + Express.Все остальное работает нормально, но я не могу сделать файл .env для заполнения process.env

Сначала я думал, что это проблема с областью видимости, так как мой app.js, где вызывается dotenvfrom, находится в подпапке src, а .env - в корне.Но, используя инструменты узла и подтверждая его с помощью пакета find-config, у меня есть правильный абсолютный путь.Я никогда не получал ENOENT для файла, который не был найден.

Я перепробовал все, от отладочной штуковины dotenv, описанной в документации, до своей собственной отладки, убедившись, что все на месте.Это моя последняя попытка:

const fs = require('fs');
const realpath = require('find-config')('.env');
console.log(dotenv.parse(fs.readFileSync(realpath)));

Я приостановил выполнение и утверждал, что действительно realpath - это абсолютно абсолютный .env путь. И вот .env

NODE_ENV=development
NODE_HOST=localhost
NODE_PORT=8080
SESSION_SECRET=eX&frsz9M*3XqFKUrK6

console.log выводит {}, что согласуется с каждой попыткой, которую я пробовал: никогда не было ошибки и никогда не анализировался объект.Просто ничто.

Делая это:

const results = JSON.stringify(dotenv.config({"path":"/100%/correct/path/.env"}));

Отбрасывает {"parsed":{}}

Я стал настолько подозрительным , что я скачал, установили запустите мега-репозиторий Hackathon Starter из 29 тыс. звезд, в котором используется тот же метод 1031 *.

Изначально он не работает, поскольку автор использовал относительный путь.С абсолютным путем это работает.

Чего мне не хватает?

...