Dotenv.config({путь}) не работает, несмотря на то, что у меня есть точный соответствующий путь к моему файлу

#javascript #node.js

#javascript #node.js

Вопрос:

Я пытаюсь импортировать файлы dotenv внутри файлов дочернего каталога. Я включил параметр path в спецификацию конфигурации, чтобы гарантировать импорт соответствующего файла.

Здесь мой snippet.js:

 const path=require("path")

if (process.env.NODE_ENV !== 'production') {
  console.log("in dotenv load, ",path.resolve(__dirname, "../"))
  require('dotenv').config({path: path.resolve(__dirname, "../")})
}
  

Но process.env относительно моего .env возвращается undefined . Я знаю, что мой .env файл работает хорошо, поскольку я тестировал его на других файлах на корневом уровне.

Любая подсказка была бы отличной, спасибо

Ответ №1:

Похоже, вы пытаетесь импортировать несколько файлов в этот каталог. Одновременно можно использовать только require один .env файл. По умолчанию пакет dotenv выбирает .env файл в вашем текущем рабочем каталоге с помощью path.resolve(process.cwd(), '.env') .

Попробуйте указать имя файла, скажем vars.env

 const path=require("path")

if (process.env.NODE_ENV !== 'production') {
  console.log("in dotenv load, ",path.resolve(__dirname, "../vars.env"))
  require('dotenv').config({path: path.resolve(__dirname, "../vars.env")})
}
  

Надеюсь, это поможет!

Комментарии:

1. фактически я забыл .env в конце пути, теперь работает хорошо

2. У меня это сработало… Я пытался с помощью path.join(__dirname, ‘../’, config/.env.${process.env.NODE_ENV} ); Но это не сработало, Спасибо за ответ