У меня работает 5 NodeJS сервисов, но у меня проблема в одном из них.
Это файл nodemon.json
:
{
"watch": ["**/*.ts"],
"ext": "ts,json",
"ignore": ["./test/*.ts"],
"exec": "node -r ts-node/register -r dotenv/config Index.ts dotenv_config_path=$(pwd)/.env",
"env": {
"NODE_ENV": "development"
}
}
Он такой же, как остальные услуги. Когда я запускаю npm run dev
, я получаю сообщения об ошибках в зависимости от того, какое значение берется из файла .env, например:
const LOCAL_CONFIGURATION = {
PORT_APP: 8082,
MONGODB: {
SERVER: process.env.MONGO_DTE,
AUTH: {
auth: {
password:process.env.MONGO_PASSWORD,
user:process.env.MONGO_USER
}
},
},
MS_NOTIFICACION: "http://localhost:8089/notificacion",
ELASTIC_PATH: process.env.ELASTIC_PATH,
...COMMON,
};
Первое сообщение об ошибке: ConfigurationError: Missing node(s) option
Это сообщение создается, потому что оно не читает значение из process.env.ELASTIC_PATH
, но если я добавлю значение с жестким кодом, такое как "http://with.the.correct.url", и он попытается снова выполнить, я получу еще одну ошибку:
Error: Credentials must be provided when creating a service client
Эта ошибка потому что он пытается прочитать password:process.env.MONGO_PASSWORD
и user:process.env.MONGO_USER
et c, поэтому существует проблема с чтением файла .env
. Я знаю, что файл .env
имеет эти значения, и файл находится в UTF-8, без кавычек и т. Д. c. Файл .env
- это тот же файл, что и другие службы, в остальном он работает нормально, но я не знаю, почему его здесь не читают.
Есть идеи?
РЕДАКТИРОВАТЬ:
Плюс, я вставил console.log(process.env);
в config.ts
файл, и он показывает значения, подобные этому:
Но нет значений из .env
, например, там на рисунке есть значение с именем COMPUTERNAME
, поэтому, если я поставлю console.log(process.env.COMPUTERNAME);
, я получу: IBM-NOT87
Почему не получается файл .env?