Как установить домашнюю папку в системной переменной Heroku? - PullRequest
1 голос
/ 13 марта 2019

Я развертываю приложение node.js в Heroku dyno и использую модуль конфигурации , который требует от меня определения системной переменной NODE_CONFIG_DIR с расположением папки config.

Папка config находится в корне моего проекта.

Я попытался определить системную переменную NODE_CONFIG_DIR, используя следующие значения, все не удалось:

./config
~/config
app/config
~/app/config
./app/config
$HOME/config
$HOME/app/config

Я продолжаю получатьэта ошибка:

WARNING: No configurations found in configuration directory:app/config

(замените app/config любым из указанных выше значений)

Мне удалось установить системную переменную, но ее значение не указывает на правильное место.

Как правильно обращаться к корню моего дерева при использовании системной переменной в Heroku?

Ответы [ 3 ]

1 голос
/ 13 марта 2019

Вы были близки: /app - правильный путь. Вы можете проверить это, запустив heroku run bash.

1 голос
/ 13 марта 2019

На основании документации - если папка config находится в корне вашего приложения, вам не нужно для указания $NODE_CONFIG_DIR переменной env.


Из документации по узлу :

Node-config считывает файлы конфигурации в каталоге «./config» для запущенного процесса, обычно это корневой каталог приложения. Это можно изменить, установив переменную окружения $NODE_CONFIG_DIR в каталог, содержащий ваши файлы конфигурации. Он также может быть установлен из узла перед загрузкой Node-config:

process.env["NODE_CONFIG_DIR"] = __dirname + "/configDir/";
const config = require("config");

$NODE_CONFIG_DIR может быть полным путем из корневого каталога или относительным путем из процесса, если значение начинается с ./ или ../.


Вы можете использовать код выше, чтобы установить его из кода вашего узла.

0 голосов
/ 29 марта 2019

Это было плохо ...

Оба ответа верны, но не решили мою проблему.

Проблема заключалась в том, что я использовал нижний регистр для имени файла конфигурации, в то время как NODE_ENV значение было в верхнем регистре.

...