Angular: разделение общих переменных env в файл commonEnv.ts - PullRequest
2 голосов
/ 21 сентября 2019

В моем проекте Angular у меня есть несколько различных конфигураций среды для поддержки разных стран, для которых я создал один файл среды на конфигурацию, например

  • localIn
  • stagIn
  • prodIn
  • localBr
  • stagBr
  • prodBr
  • localAu
  • stagAu
  • prodAu
  • .....

и т. Д.

  1. Но во всех этих файлах у меня есть 60% общих переменных, то есть значение 60%переменных одинаков во всех файлах.

  2. Остальные 30% значения переменной изменяются только в зависимости от страны, т. е. переменная в Индии одинакова для local, stag и prod, он изменяется только для Бразилии, Австралии и других стран.

  3. Теперь последние 10% значений переменной для каждого файла изменяются.

Я ищу решение, в котором у меня может быть что-то вроде commonEnv.ts файла, в котором я могу хранить все переменные моих общих сред.

Затем commonIndia.ts, где я могу хранить все специфичные для страны общие переменные, например, здесь специфичные для Индии переменные.

И, наконец, отдельные файлы для каждого конфига, который уже виден в Angular.


Возможно ли это сделать в Angular?Скажите, пожалуйста, как.

Если нет, как я могу решить мою проблему?

Также, если мы можем объединить файлы commonEnv.ts, common-contry.ts и config.ts водин файл env.ts на каждом Angular serve / build был бы великолепен.

1 Ответ

1 голос
/ 21 сентября 2019

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

common-env.ts

export  const CommonEnv = {
     apiUrl : '127.0.0.1/api',
     production : true
}

импортировать CommonEnv в другие объекты среды, подобные этому

environment.ts

export const environment = {
  ...CommonEnv,
  production : false // ? change a proprty value come from CommnEnv
};

environment.prod.ts

export const environment = {
   ...CommonEnv,
   apiUrl : '216.58.206.174/api' // ? reset the apiUrl
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...