Исключить код компонентов из производственной среды в Angular

Я хотел бы исключить определенные компоненты из моей производственной сборки в Angular 5+. До сих пор я читал и понимаю концепции переменных среды, но, насколько я понимаю, они доступны во время выполнения. То, что я ищу, - это фактически исключить определенные модули из когда-либо импортированных, чтобы их код не попал в производственную сборку (файлы).

Я тоже не хочу <div *ngIf = "isProduction">...</div> валяется, я бы предпочел сделать что-то вроде этого:

Component({ ... templateUrl: environment.production ? 'app.prod.html' : 'app.html' })

Однако это также невозможно из-за того, как работает компилятор Angular.

Я предполагаю, что ответ на это - настроить angular-cli, но, учитывая, что нет хорошей документации (которую я могу найти), я хотел бы знать, есть ли у кого-нибудь идея получше?

Я долго искал хороший ответ, но все еще не могу его найти. @ Max101 Удалось ли вам найти решение лучше, чем то, что я опубликовал ниже?

Matthew Mullin 28.08.2018 17:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
8
1
2 385
1

Ответы 1

Для тех, кто ищет * не очень масштабируемое * решение.

Решение для Угловой 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 29.08.2018 09:21

Другие вопросы по теме