У меня та же проблема, не знаю, совпадает ли сценарий с вашим, но в основном у меня есть этот скрипт узла, который подключается к MongoDB через драйвер NodeJS (не Mongoose), и я запускаю этот скрипт через * NIX cron.
В любом случае, читая документы dotenv Я обнаружил, что на самом деле вы можете анализировать результаты конфигурации, выполнив что-то вроде этого:
const dotenv = require('dotenv')
const result = dotenv.config()
if (result.error) { throw result.error }
console.log(result.parsed)
Я сделал и выяснил, что мой сценарий предполагает, что мой файл .env находится у пользователя дома, а не в корне проекта (да, я запускаю это на AWS EC2). Ошибка довольно очевидна:
Error: ENOENT: no such file or directory, open '/home/ec2-user/.env'
Так что, да, убедитесь, что ваш файл .env доступен из каталога выполнения скрипта (в моем случае я выполняю скрипт из / home / ec2-user и мой корневой каталог проекта - / home / ec2-user / проект).
TL; DR: указать местоположение .env по абсолютному пути, например
require('dotenv').config({path: '/full/custom/path/to/your/.env'})