Ключи Dotenv process.env не доступны, пока я не сделаю копию объекта

Я добавляю.env к своему приложению Node Express и когда делаю:

console.log(process.env) 

Я вижу некоторые переменные env процесса по умолчанию, которые я не добавил, а также одну пользовательскую переменную, которую я добавил в мой файл.env (TEST_VAR):

{ 
  npm_package_devDependencies_nodemon: '^1.11.0',
  npm_config_version_tag_prefix: 'v',
  TEST_VAR: '12345'
}

Однако, когда на следующей строке я делаю:

console.log(process.env.TEST_VAR)

Я получил:

undefined

Однако, запустив это:

console.log(process.env.npm_package_devDependencies_nodemon)

Возвращает ожидаемое:

'^1.11.0'

Я смог решить это с:

var envVars = { ... process.env }
console.log(envVars.TEST_VAR)

Который на самом деле выводит значение, установленное в моем файле.env.

Кто-нибудь может пролить свет на то, почему мне нужно сделать копию, прежде чем я смогу получить доступ к переменным, которые, кажется, присутствуют?

1 ответ

дотенв требует .env файлы должны быть в определенном формате, и он не включает JSON.

Это больше похоже на VARIABLE_KEY=VARIABLE_VALUE, В вашем случае это будет выглядеть так

npm_package_devDependencies_nodemon=^1.11.0
npm_config_version_tag_prefix=v
TEST_VAR=12345
Другие вопросы по тегам