Я занимаюсь разработкой стандартного веб-приложения Node + Express.Все остальное работает нормально, но я не могу сделать файл .env
для заполнения process.env
Сначала я думал, что это проблема с областью видимости, так как мой app.js, где вызывается dotenv
from, находится в подпапке 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 *.
Изначально он не работает, поскольку автор использовал относительный путь.С абсолютным путем это работает.
Чего мне не хватает?