Я хотел бы исключить определенные компоненты из моей производственной сборки в Angular 5+. До сих пор я читал и понимаю концепции переменных среды, но, насколько я понимаю, они доступны во время выполнения. То, что я ищу, - это фактически исключить определенные модули из когда-либо импортированных, чтобы их код не попал в производственную сборку (файлы).
Я тоже не хочу
<div *ngIf = "isProduction">...</div> валяется, я бы предпочел сделать что-то вроде этого:
Component({
...
templateUrl: environment.production ? 'app.prod.html' : 'app.html'
})
Однако это также невозможно из-за того, как работает компилятор Angular.
Я предполагаю, что ответ на это - настроить angular-cli, но, учитывая, что нет хорошей документации (которую я могу найти), я хотел бы знать, есть ли у кого-нибудь идея получше?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Для тех, кто ищет * не очень масштабируемое * решение.
Решение для Угловой 5 / Угловой 6+
Вы можете переключать определенные файлы в зависимости от того, какую среду вы создаете / обслуживаете, добавляя каждую пару файлов в файл angular.json.
Например, если вы хотите использовать app.prod.html вместо app.html в компоненте приложения только при использовании производственной среды / конфигурации.
В angular.json добавьте свои замены в массив fileReplacements под конфигурацией, которую вы хотите заменить:
{
...
"projects": {
...
"configurations": {
"production": {
...
"fileReplacements": [
...
*** ADD YOUR REPLACEMENT FILES HERE ***
...
]
}
}
}
}
Используя приведенный выше пример:
{
...
"projects": {
...
"configurations": {
"production": {
...
"fileReplacements": [
...
{
"replace": "src/app/app.html",
"with": "src/app/app.prod.html"
}
...
]
}
}
}
}
Не очень хорошее решение, поскольку кажется, что вы будете делать это для каждого файла, который хотите заменить, но, тем не менее, оно должно работать.
Создавайте или обслуживайте конкретную конфигурацию с
ng serve --configuration=production
ng build --configuration=production
Да, я пришел к выводу о том же ... Я считаю, что это единственный поддерживаемый способ достижения этой цели ...
Я долго искал хороший ответ, но все еще не могу его найти. @ Max101 Удалось ли вам найти решение лучше, чем то, что я опубликовал ниже?