Как я могу создать приложение Angular без добавления каких-либо компонентов или модулей? - PullRequest
2 голосов
/ 13 марта 2020

Я использую Angular 9 для создания приложения с множеством модулей и компонентов. Когда я буду создавать это приложение, мне нужно исключить один модуль или компонент из этой компиляции. Я говорю модуль или компоненты, потому что я не знаю, как лучше всего исключить эту функциональность при компиляции.

Например:

У меня есть два компонента. comp1.component.ts содержит три кнопки:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-comp',
  templateUrl: './comp1.component.html',
  styleUrls: []
})
export class Comp1Component implements OnInit {

  title = 'Loaded Component 1.';

  constructor() { }

  ngOnInit(): void {
  }

}

comp2.component.ts содержит две кнопки:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-comp',
  templateUrl: './comp2.component.html',
  styleUrls: []
})
export class Comp2Component implements OnInit {

  title = 'Loaded Component 2.';

  constructor() { }

  ngOnInit(): void {
  }

}

И .html одинаков для обоих:

<p>{{title}}</p>

Другими словами, у меня есть другой компонент, где я хочу загрузить один из этих двух компонентов, в зависимости от среды, в которую я загружаю.

В среде A мне нужна загрузка comp1.component.ts и в среде B , мне нужна загрузка comp2.component.ts. Но если я загружу один из этих компонентов, другой компонент не должен быть включен в сборку этого приложения, но у меня нет никакой идеи, чтобы решить эту проблему ...

Есть идеи решить эту проблему?

Спасибо за просмотр.

Ответы [ 2 ]

1 голос
/ 13 марта 2020

если вы используете angular -cli build build, вы можете изменить tsconfig.app. json файл, добавить ту же конфигурацию в root элемент

{
  "exclude": [
    "src/test.ts",
    "src/**/*.spec.ts",
    "src/xxx/xxxxx/**/*"
  ]
}
1 голос
/ 13 марта 2020

вы можете сделать то же самое, что и environment файл изменяется между целями сборки

"configurations": {
  "target-with-component2": {
    "fileReplacements": [
      {
        "replace": "path/to/comp1.component.ts",
        "with": "path/to/comp2.component.ts"
      }
    ],

он заменит компоненты так же, как требуется в вопросе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...