У меня есть случай, когда я должен иметь возможность развернуть свой проект Angular 6 для двух разных серверов, каждый с немного отличающимся API, и т.д. По этой причине я добавил разные уровни абстракции в виде сервисов, чтобы интерфейс оставался равным интерфейсу.
Поскольку файлы будут иметь совершенно разное содержимое, я хотел бы написать отдельные сервисы в отдельных файлах и установить только один набор служб, «активных», например, для извлечения данных, обработки пользователя и т. д.
app/
├── core/
│ ├── Server1.user.service.ts
│ ├── Server2.user.service.ts
│ ├── Server1.data.service.ts
│ ├── Server2.data.service.ts
│ └── ...
├── components/
│ ├── ...
│ └── ...
└── ...
Чего я хочу избежать, так это большого количества if (deployedForServer1) {...}
в моем коде, так как это сложно поддерживать и сложно поддерживать обзор.
Теперь я не уверен, как лучше всего это реализовать.
Моим первым подходом было бы сделать это, заменив службы на "fileReplacements" в angular. json. Преимущество этого заключается в том, что будет развернут только нужный мне код, но в результате получается довольно сложная конфигурация angular. json.
Другим способом было бы работать с переменными среды, но здесь я не уверен, смогу ли я избежать использования в своем коде нескольких if (deployedForServer1) {...}
-подобных запросов.
Я не имею в виду этот вопрос чтобы быть одним, чтобы ответить мнениями, а точнее информацией, если один из этих подходов в корне неверен или имеет какие-либо серьезные недостатки, я не вижу сейчас.